2009-04-28 23 views
0

Windows XP sp2でPHP 5.2.9-2でSQL Server 2008に接続しようとしています。同じマシンからSQL Server Management StudioからリモートSQL Serverに接続できます。PDOでSQL Server 2008に接続

私の最初の試みは、このでした:

 
PHP Fatal error: 
Uncaught exception 'PDOException' with message 
'SQLSTATE[0100] Unable to connect: SQL Server is unavailable or does not exist. 
Access denied. (severity 9)'

第二の試み(experts-exchangeで見つかった)

$conn = new PDO("odbc:Driver={SQL Server Native Client 10.0};Server={$host};Database={$db};Uid={$user};Pwd={$pass}", 
         $user, $pass); 

これは動作しますが、私ができる」:このエラーが発生します

$conn = new PDO("mssql:host={$host};dbname={$db}", $user, $pass); 

PDO::lastInsertId()を使用してください。

 Driver does not support this function: driver does not support lastInsertId()

ご意見はありますか?どんな助けでも大歓迎です。

答えて

1

mssqlデータサーバタイプのpdoに接続するにはdblibが必要です。マシンにdblibをインストールしましたか?システムのパスのどこかにntwdblib.dllがあることを確認してください。私はこれがあなたが得ているエラーメッセージで震えないことを知っていますが、私はエラーメッセージを信頼するかどうかはわかりません。

0

That you cannot use SQL Server authentication because only Windows authentication is permitted.

チェックサーバがrunning Mixed mode authentication.

ある場合this SO questionがあなたを助けている場合も確認してください。

+0

ありがとうございます。他の質問には解決策はありませんでした。 Windows認証を使用するか、データベース用に作成したSQL Serverログインを使用してSQL Server Management Studioに接続できるため、混合モードが実行されています。 –

1

ntwdblib.dllをhereとして更新しました。

残念ながら私はまだPDO::lastInsertId()を使用できません。明らかに、このドライバはそれをサポートしていないため、面倒なことではありませんでした。しかし私は同等のSELECT @@IDENTITY as Idを使うことができます。

関連する問題