0

別のマシン 2 の PHP コードからマシン 1 の SQL Server 2008 に接続しようとしています。PHP 5.4.7、XAMPP 1.8.1 を使用しており、SQL サーバー dll を PHP/ext フォルダーにコピーし、php.ini ファイルを変更しました。

さて、SQLサーバーに接続しようとすると、次のエラーが発生します。

Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => この拡張には Microsoft SQL Server 2012 Native Client が必要です. 次の URL にアクセスして、x86 用の Microsoft SQL Server 2012 Native Client ODBC ドライバーをダウンロードします: http://go.microsoft.com/fwlink/?LinkId=163712 [メッセージ] => この拡張機能には、Microsoft SQL Server 2012 Native Client が必要です次の URL にアクセスして、x86 用の Microsoft SQL Server 2012 Native Client ODBC ドライバーをダウンロードします: http://go.microsoft.com/fwlink/?LinkId=163712) [1] => Array ( [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [コード] => 0 [2] => [Microsoft][ODBC Driver Manager] データ ソース名が見つかりません既定のドライバーが指定されていません [メッセージ] => [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません ) )

私のPHPコードは次のとおりです-

<?php
//phpinfo(); 
$server = "sql server\express,1433"; //serverName\instanceName, portNumber (default is 1433)
$uid="username";
$pwd="password";
$connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database"=>"rod_prd_tmart");
$conn = sqlsrv_connect( $server, $connectionInfo) ;

if($conn) 
{
   echo "Connection established.\n";
} else
{
   echo "Connection could not be established in this text.\n";
   die( print_r( sqlsrv_errors(), true));
}

sqlsrv_close( $conn);
?>

この問題の解決を手伝ってください。ありがとう。

4

1 に答える 1

0

柔軟性を高めるためにPDOの使用を検討してください。

//$pdo = new PDO("sqlsrv:Server=$hostname;Database=$dbname;", $username, $password);  // works with proper driver for PHP.
$pdo = new PDO("odbc:Driver={SQL Server};Server=$hostname;Database=$dbname;", $username, $password);  // works with proper driver for ODBC and PHP ODBC.

奇妙なコンパイラ バージョンの非互換性のために最初の行を動作させることができませんでしたが、SQL Server 用の Microsoft ODBC Driver 11 をインストールした後、2 番目の行は正常に動作しました。

によると、PHP バージョン 5.3.0 には組み込みの ODBC サポートphp.iniがありますが、ここではまだアクティブなextension=php_pdo_odbc.dll

于 2014-10-08T15:35:23.363 に答える