1

PHPとPDOを介してMS SQL 2008 R2に接続する必要があるWebアプリケーションに取り組んでいます。ドライバーを正常にインストールし、次の方法でも確認しました。

var_dump(PDO::getAvailableDrivers());

私は 2 つの Windows サーバー (どちらも 2008) を使用しています。1 つは SQL データベース用で、もう 1 つは XAMPP 用です。他のサーバーから SQL サーバーに接続しているプログラムが約 8 つあるため、接続の問題は SQL サーバー自体ではないと思います。

ここでは、アプリケーションから MS SQL データベース テーブルに挿入する非常に簡単な例を示します。

if ($_SERVER['REQUEST_METHOD'] == 'POST'){      
$company        = $_POST['company'];    
$name           = $_POST['name'];   
$firstname      = $_POST['firstname'];  
$number         = $_POST['number'];     
$host           = $_POST['host'];   
$licenseplate           = $_POST['plate'];  
$reason         = $_POST['site'];   
$timein         = date('Y-m-d H:i:s');

$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************");   $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);       
$sql = "INSERT INTO visitors (visitor_name, visitor_firstname, visitor_company, visitor_number, visitor_plate, visitor_in) VALUES (:lname, :fname, :company, :pnumber, :lplate, :tin)";     
$q = $db->prepare($sql);    
$q->execute(array(':lname'=>$name, ':fname'=>$firstname, ':company'=>$company, ':pnumber'=>$number, ':lplate'=>$licenseplate, ':tin'=>$timein));

ここにいくつかの追加情報があります:

SQL サーバーのホスト名 (コンピューター名自体) =SQLSERVER

SQL サーバーの名前 (SQL Server Management Studio の下 = 接続先) =MSSQLSERVER2

ここに私の質問があります:

データベースに正常に接続できません。これに関連していると思います

$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************");

ここで使用しますServer=MSSQLSERVER2が、それは SQL サーバー管理スタジオのサーバーの名前にすぎません。サーバー自体を指している場所がないのは、おそらくそれが私の問題であり、ODBC 接続が必要ですか? Linux環境で必要なだけのインターネットを読みましたか?

誰かが私が間違っていることを教えてくれますか? 追加の接続を行う必要がありますか?

最後の質問は、接続する必要があるポート番号はどこで確認できますか?

すなわち

new PDO("sqlsrv:Server=MSSQLSERVER2,1433;  

これは、私のページに表示されるエラーです。

致命的なエラー: 例外 'PDOException' がキャッチされず、メッセージ 'SQLSTATE[IMSSP]: この拡張機能を使用するには、Microsoft SQL Server 2012 Native Client ODBC ドライバーが SQL Server と通信する必要があります。次の URL にアクセスして、x86 用の Microsoft SQL Server 2012 Native Client ODBC ドライバーをダウンロードします。

4

1 に答える 1

1

問題を解決する手がかりは、エラー メッセージにあります。

致命的なエラー: 例外 'PDOException' がキャッチされず、メッセージ 'SQLSTATE[IMSSP]:この拡張機能を使用するには、Microsoft SQL Server 2012 Native Client ODBC ドライバーが SQL Server と通信する必要があります。次の URL にアクセスして、x86 用の Microsoft SQL Server 2012 Native Client ODBC ドライバーをダウンロードします。

SQL Server Native Client ドライバーがインストールされていないようです。

次の URL を参照します。

Microsoft® SQL Server® 2012 機能パック

以下が表示されるまで下にスクロールします。

Microsoft® SQL Server® 2012 ネイティブ クライアント

X86 パッケージのインストーラーをダウンロードして実行します( http://go.microsoft.com/fwlink/?LinkID=239647&clcid=0x409 ) 。

于 2014-01-17T13:27:26.527 に答える