经过大量的阅读和搜索后,我能够在Centos 6.4 32位(有64位而不是32位的文档)中使用PDO DBLIB。令我惊讶的下面从shell命令($ PHP test.php的)代码工作访问SQL Server 2008和2012的PDO DBLIB
<?php
try {
$conn = new PDO('dblib:host='.$host.':1433;dbname='.$db, $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
但是从Web浏览器我得到以下错误访问文件test.php的时候:
ERROR: SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9)
我也能使用该命令的外壳连接到SQL服务器:
tsql -H 192.168.1.120 -p 1433 -U sa
我缺少什么?
PHP中的cli和sapi模式可以有完全不同的配置。比较'php -i'(cli)和'phpinfo()'(sapi)设置并查看是否有任何差异。 –
有什么办法可以使两者都一样吗? –
更改相应的.ini文件。 php -i/phpinfo会告诉你正在使用什么(和哪里).ini文件。 –