SQLSRV 是唯一能够将UTF-8字符串存储到两字节列(NVARCHAR
而不是VARCHAR
)的 PHP 驱动程序,Microsoft 当前为 PHP 5.2.X 和 5.3.X 维护和支持该驱动程序。
而且我还获得了下载这些驱动程序的链接Linux SQLSRV 驱动程序下载linux 但我无法配置。
如果有人知道如何在 linux 上配置sqlsrv驱动程序,或者有其他替代方法可以从SQL Server 以UTF-8格式检索数据,请分享。
SQLSRV 是唯一能够将UTF-8字符串存储到两字节列(NVARCHAR
而不是VARCHAR
)的 PHP 驱动程序,Microsoft 当前为 PHP 5.2.X 和 5.3.X 维护和支持该驱动程序。
而且我还获得了下载这些驱动程序的链接Linux SQLSRV 驱动程序下载linux 但我无法配置。
如果有人知道如何在 linux 上配置sqlsrv驱动程序,或者有其他替代方法可以从SQL Server 以UTF-8格式检索数据,请分享。
这是来自 Microsoft 社区的 wiki 帖子
https://github.com/Microsoft/msphpsql/wiki/Install-pdo_sqlsrv-for-PHP-7.0-on-Debian
我认为最简单的路线是 php-pear 路线
# (1) Install PDO driver from pecl
apt-get install unixodbc-dev php7.0-dev php-pear
pecl install pdo_sqlsrv-4.0.5
echo -e "; priority=20\nextension=pdo_sqlsrv.so" > /etc/php/7.0/mods-available/pdo_sqlsrv.ini
phpenmod -v 7.0 pdo_sqlsrv
其他 UTF-8 兼容的解决方案 dblib:
您安装 freetds 并将 php-mssql 驱动程序与 PDO 一起使用。
更改 /etc/freetds.conf 中的编码
在 /etc/locales.conf 中更改字符集和日期格式
我是在 2010 年做的。
I Googled a bit more after I read this and I may have found the answer. On Debian:
# apt-get install freetds-common freetds-bin unixodbc php5-mssql
That will install everything PHP needs for Free TDS and allows me to connect using the sqlsrv driver.
请更换:
echo -e "; priority=20\nextension=pdo_sqlsrv.so" > /etc/php/7.0/mods- available/pdo_sqlsrv.ini
至:
echo -e "; priority=20\nextension=pdo_sqlsrv.so" > /etc/php/7.0/mods-available/pdo_sqlsrv.ini