--TEST-- Test emulate prepare utf8 encoding set at the statement level --SKIPIF-- --FILE-- "nvarchar(max)")); $prefix = '가각'; $name = '가각ácasa'; $name2 = '가각sample2'; $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false; $st = $connection->prepare("INSERT INTO $tbname (name) VALUES (:p0)", $pdo_options); $st->execute(['p0' => $name]); // Always Encrypted does not support emulate prepare if (!isAEConnected()) { $pdo_options[PDO::ATTR_EMULATE_PREPARES] = true; } $st = $connection->prepare("INSERT INTO $tbname (name) VALUES (:p0)", $pdo_options); $st->execute(['p0' => $name2]); if (!isAEConnected()) { $statement1 = $connection->prepare("SELECT * FROM $tbname WHERE NAME LIKE :p0", $pdo_options); $statement1->execute(['p0' => "$prefix%"]); $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false; $statement2 = $connection->prepare("SELECT * FROM $tbname WHERE NAME LIKE :p0", $pdo_options); $statement2->execute(['p0' => "$prefix%"]); } else { $statement1 = $connection->prepare("SELECT * FROM $tbname", $pdo_options); $statement1->execute(); $statement2 = $connection->prepare("SELECT * FROM $tbname", $pdo_options); $statement2->execute(); } foreach ($statement1 as $row) { echo 'FOUND: ' . $row['name'] . "\n"; } foreach ($statement2 as $row) { echo 'FOUND: ' . $row['name'] . "\n"; } dropTable($connection, $tbname); unset($stmt); unset($connection); } catch (PDOException $e) { var_dump($e->errorInfo); } ?> --EXPECT-- FOUND: 가각ácasa FOUND: 가각sample2 FOUND: 가각ácasa FOUND: 가각sample2