如何通过PHP和Linux使用pdo连接到mssql?

2022-08-30 16:08:36

我正在尝试使用以下代码进行新的PDO连接。

new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

我不确定要使用哪些驱动程序?或者如何安装它们。我可以使用PHP中的函数很好地连接,但我想改用PDO库。mssql_connect

我的mssql设置是:php.ini

ssql

MSSQL Support   enabled
Active Persistent Links     0
Active Links    1
Library version     FreeTDS

Directive   Local Value Master Value
mssql.allow_persistent  On  On
mssql.batchsize 0   0
mssql.charset   no value    no value
mssql.compatability_mode    Off Off
mssql.connect_timeout   5   5
mssql.datetimeconvert   On  On
mssql.max_links Unlimited   Unlimited
mssql.max_persistent    Unlimited   Unlimited
mssql.max_procs Unlimited   Unlimited
mssql.min_error_severity    10  10
mssql.min_message_severity  10  10
mssql.secure_connection Off Off
mssql.textlimit Server default  Server default
mssql.textsize  Server default  Server default
mssql.timeout   60  60

答案 1

PDO mssql驱动程序不再是,使用(在php窗口下)或(在php Linux下)sqlsrvdblib

http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

http://www.php.net/manual/en/ref.pdo-dblib.php


答案 2

我正在运行 Ubuntu 14.04。尝试连接到MSSQL时,我得到了“未捕获的异常'PDOException',消息为'找不到驱动程序'”。似乎我错过了dblib / sybase PHP扩展。

我不得不跑:

sudo apt-get install php5-sybase freetds-common libsybdb5 \ 
&& sudo apache2ctl restart

现在工作正常。


推荐