在运行 PHP 5.6 的 CentOS 7.3 机器上,我已经安装并配置了 PDO 的 MS SQL 驱动程序,但它不适用于 PHP。
查看驱动是否正确安装并配置:
$ yum list php56w-mssql
Installed Packages
php56w-mssql.x86_64 5.6.30-1.w7 @webtatic
$ cat /etc/php.d/mssql.ini
; Enable mssql extension module
extension=mssql.so
但是,PHP 无法识别它:
$ php -i | grep 'PDO drivers'
PDO drivers => dblib, mysql, sqlite
我该如何解决这个问题?
答案1
不幸的是,我无法让 MS SQL 扩展正常工作。然而,PHP 可以通过以下方式连接到 MS SQL数据库连接:
$ yum list php56w-odbc
Installed Packages
php56w-odbc.x86_64 5.6.30-1.w7 @webtatic
$ cat /etc/php.d/odbc.ini
extension=odbc.so
然后在 PHP 中:
$mssqldriver = 'ODBC Driver 13 for SQL Server';
$hostname='1.2.3.4';
$dbname='foobar';
$username='';
$password='';
$dsn = "odbc:Driver={$mssqldriver};Server={$hostname};Database={$dbname};MARS_Connection=yes";
$pdo= new PDO($dsn, $username, $password);
请务必指定MARS 连接,否则连接将仅限于单个待处理的请求。