我正在尝试使用以下代码进行新的PDO连接。
new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
我不确定要使用哪些驱动程序?或者如何安装它们。我可以使用PHP中的mssql_connect函数完美地连接,但我想要使用PDO库。
如果您对如何解决我的问题或如何更好地提出问题有任何想法,请告诉我?
我对mssql的php.ini设置是:
ssql
启用MSSQL支持
主动持久链接0
活动链接1
图书馆版FreeTDS
指令本地价值主值
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.charset没有值没有值
mssql.compatability_mode关闭关
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links无限无限
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关闭关
mssql.textlimit服务器默认服务器默认
mssql.textsize服务器默认服务器默认
mssql.timeout 60 60
由于
答案 0 :(得分:31)
PDO mssql驱动程序已不复存在,使用sqlsrv
(在php窗口下)或dblib
(在php linux下)
答案 1 :(得分:4)
我正在运行Ubuntu 14.04。试图连接到MSSQL我得到了#34;未捕获的异常' PDOException'有消息'无法找到驱动程序'"。似乎我错过了dblib / sybase PHP扩展。
我必须跑:
sudo apt-get install php5-sybase freetds-common libsybdb5 \
&& sudo apache2ctl restart
现在工作正常。
答案 2 :(得分:1)
尝试
$dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");
$hostname may need to be configured as either...
$hostname.':'.$port;
OR
$hostname.','.$port;
答案 3 :(得分:0)
Karl Wilbur发表的dblib / sybase PHP扩展技巧对我有用。 现在会显示LimeSurvey的预安装检查页面
只需确保找到并安装与您使用的PHP版本一致的版本即可。
Prompt>sudo apt-get install php<appropriate version>-sybase freetds-common libsybdb5
Prompt>sudo apache2ctl restart
干杯