8

SQLSRV 是唯一能够将UTF-8字符串存储到两字节列(NVARCHAR而不是VARCHAR)的 PHP 驱动程序,Microsoft 当前为 PHP 5.2.X 和 5.3.X 维护和支持该驱动程序。

而且我还获得了下载这些驱动程序的链接Linux SQLSRV 驱动程序下载linux 但我无法配置。

如果有人知道如何在 linux 上配置sqlsrv驱动程序,或者有其他替代方法可以从SQL Server 以UTF-8格式检索数据,请分享。

4

4 回答 4

2

这是来自 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
于 2016-11-01T09:27:58.110 回答
1

其他 UTF-8 兼容的解决方案 dblib:

  1. 您安装 freetds 并将 php-mssql 驱动程序与 PDO 一起使用。

  2. 更改 /etc/freetds.conf 中的编码

  3. 在 /etc/locales.conf 中更改字符集和日期格式

我是在 2010 年做的。

于 2015-03-19T15:11:16.017 回答
1

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.

于 2014-10-24T18:21:10.510 回答
0

请更换:

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
于 2018-08-14T10:20:29.387 回答