D", $value, $match)) { return "'".\IntlChar::chr((int) $match[1])."'"; } return $value; case "datetime": return "cast($value as datetime(0))"; default: return $value; } } public function testBindLongString(): void { // this test requires some set-up to be effective static::$interface->query("CREATE TABLE arsse_test(`value` longtext not null) character set utf8mb4"); // we'll use an unrealistic packet size of 1 byte to trigger special handling for strings which are too long for the maximum packet size $str = "long string"; $s = new \JKingWeb\Arsse\Db\MySQL\Statement(static::$interface, "INSERT INTO arsse_test values(?)", ["str"], 1); $s->runArray([$str]); $s = new \JKingWeb\Arsse\Db\MySQL\Statement(static::$interface, "SELECT * from arsse_test", []); $val = $s->run()->getValue(); $this->assertSame($str, $val); } }