經過大量的閱讀和搜索後,我能夠在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文件。 –