PHP pdo_sqlsrv: вставлять строки Unicode по умолчанию на MS SQL Server - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть приложение базы данных PHP, которое может работать с MySQL, PostgreSQL и SQLite. Приложение использует PDO и предполагает, что содержимое базы данных является Unicode.

Я добавляю поддержку MS SQL SERVER с помощью драйвера pdo_sqlsrv, и единственное решение, которое я нашел, - это изменить все запросы (это действительно много работы), добавив префикс N перед строками для INSERT и ОБНОВЛЕНИЕ запросов.

Есть ли более разумное решение для вставки Unicode по умолчанию? Как настройки PDO или SQL SERVER?

Поскольку все запросы выполняются функцией (это мой собственный слой поверх PDO), я также подумал о добавлении регулярного выражения, которое изменяет запросы перед выполнением, но я думаю, что это довольно сложно.

Спасибо.

1 Ответ

0 голосов
/ 02 ноября 2018

После настройки подключения к БД необходимо добавить атрибуты PDO:

$mssql_connection->setAttribute(PDO::SQLSRV_ATTR_ENCODING, PDO::SQLSRV_ENCODING_UTF8);

Ссылка: https://docs.microsoft.com/en-us/sql/connect/php/pdostatement-setattribute?view=sql-server-2017

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...