我正在尝试与 PHP 和 MS SQL Server 2005 建立连接。我在 Windows 8 和 PHP 版本 5.3.28 中使用 IIS 8。我已经完成了研究,我发现了 MSSQL PHP PDO(http://www.php.net/manual/en/ref.pdo-sqlsrv.connection.php和http://technet.microsoft.com/en- us/library/ff754357(v=sql.105).aspx ),下载并启用了我从 Microsoft 网站 (Microsoft Drivers 3.0 for PHP for SQL Server) 找到的所有 PDO 相关 DLL,并确保它们反映在 phpinfo() .
extension=php_pdo_sqlsrv_52_nts_vc6.dll
extension=php_pdo_sqlsrv_53_nts.dll
extension=php_pdo_sqlsrv_53_nts_vc6.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll
extension=php_pdo_sqlsrv_54_nts.dll
extension=php_pdo_sqlsrv_54_nts.dll
extension=php_sqlsrv_54_nts.dll
extension=php_sqlsrv_53_ts_vc9.dll
Stock Over Flow 中的以下链接也对我的困境有很大帮助:
- 使用 SQL Server Driver 通过 PDO 连接到 SQL Server
- 使用 SQLSrv 和 PHP 5.4.7 连接到 MSSQL 时出错
- 如何使用 PHP PDO 从 Mac 连接到 Sql Server?
- 通过php和linux使用pdo连接mssql
我能够修复“找不到驱动程序”和“连接字符串无效”的问题,这是我当前的 PHP 代码:
$db_server = "func.website.com,8787";
//$db_server = "func.website.com:8787\sqlexpress";
$db_database = "db_BreadNButter";
$db_user = "tinapay";
$db_passwd = "p@ssword";
try {
//$db = new PDO ("mssql:host=$db_server;dbname=$db_database;", $db_user, $db_passwd);
$db = new PDO ("sqlsrv:Server=$db_server;Database=$db_database;", $db_user, $db_passwd);
} catch(PDOException $exception) {
die("Unable to open database.<br>Error message:<br><br>$exception.");
}
我认为(手指交叉)我已经建立了与 MSSQL DBase 的连接,但我收到以下错误:
exception 'PDOException' with message 'SQLSTATE[08001]:
[Microsoft][SQL Server Native Client 11.0]TCP Provider: Timeout error [258].
' in C:\inetpub\wwwroot\breadnbutter\class.connection.php:12 Stack trace: #0
C:\inetpub\wwwroot\breadnbutter\class.connection.php(12):
PDO->__construct('sqlsrv:Server=f...', 'tinapay', 'p@ssword') #1 {main}.
谁能告诉我为什么会出现超时错误以及如何解决这个问题?