如何通过 PHP 和 Linux 使用 pdo 连接到 mssql?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5953882/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to connect to mssql using pdo through PHP and Linux?
提问by richie
I'm trying to for a new PDO connection using the following code.
我正在尝试使用以下代码建立新的 PDO 连接。
new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
I'm not sure what drivers to use? Or how to install them. I can connect perfectly fine using the mssql_connect
function in PHP but I want to use the PDO library instead.
我不确定要使用什么驱动程序?或者如何安装它们。我可以使用mssql_connect
PHP 中的函数完美连接,但我想改用 PDO 库。
My php.ini
settings for mssql are:
我php.ini
对 mssql 的设置是:
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
回答by James
The PDO mssql driver is no more, use sqlsrv
(under php windows) or dblib
(under php linux)
PDO mssql驱动没有了,使用sqlsrv
(php windows下)或者dblib
(php linux下)
http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx
http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx
回答by Karl Wilbur
I am running Ubuntu 14.04. Trying to connect to MSSQL I got "Uncaught exception 'PDOException' with message 'could not find driver'". It seems that I was missing the dblib/sybase PHP extension.
我正在运行 Ubuntu 14.04。尝试连接到 MSSQL 时,我收到“未捕获的异常 'PDOException',消息为 '找不到驱动程序'”。似乎我缺少 dblib/sybase PHP 扩展。
I had to run:
我不得不跑:
sudo apt-get install php5-sybase freetds-common libsybdb5 \
&& sudo apache2ctl restart
Works fine now.
现在工作正常。
回答by csi
Try
尝试
$dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");
$hostname may need to be configured as either...
$hostname.':'.$port;
OR
或者
$hostname.','.$port;
回答by Shivashish
The dblib/sybase PHP extension tip posted by Karl Wilbur worked for me. The pre-installation check page for LimeSurvey now shows
Karl Wilbur 发布的 dblib/sybase PHP 扩展提示对我有用。LimeSurvey 的预安装检查页面现在显示
PHP PDO driver library- Microsoft SQL Server (dblib), MySQL
PHP PDO 驱动程序库 - Microsoft SQL Server (dblib)、MySQL
Just make sure you find and install the version that aligns with the PHP version you are using;
只需确保找到并安装与您使用的 PHP 版本一致的版本即可;
Prompt>sudo apt-get install php<appropriate version>-sybase freetds-common libsybdb5
Prompt>sudo apache2ctl restart
Prompt>sudo apt-get install php<appropriate version>-sybase freetds-common libsybdb5
Prompt>sudo apache2ctl restart
Cheers,
干杯,