PHP と MS SQL Server 2005 との接続を確立しようとしています。Windows 8 で IIS 8 と PHP バージョン 5.3.28 を使用しています。私はすでに調査を行っており、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 の Web サイト (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 ドライバーを使用して 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}.
タイムアウトエラーが発生する理由と、これを修正する方法を誰か教えてもらえますか?