5

現在、MSSQL 2012 Express で localdb に接続しようとしています。

http://www.microsoft.com/en-us/download/details.aspx?id=20098から公式の Microsoft ドライバーをダウンロードしてインストールしました。

phpinfo() である種の SQLSRV セクションを取得します。しかし、新しい PDO オブジェクトを作成しようとすると、ドライバーがないと表示されます。phpinfo() PDO セクションには記載されていないため、理解できましたが、独自のセクションがあり、get_loaded_extensions にも sqlsrv が表示されます。公式のMSドライバーからだと思いますか?Zend Server CE 5.6 と PHP 5.3.9 で php_sqlsrv_53_nts.dll を使用しています。

私が理解した限りでは、間違ったドライバーをダウンロードしたので、PECL マネージャーによって提供されたものを試してみるべきですか? 利用可能なソースコードのみがあり、明らかに私はWindowsマシンを使用しているため、自分でコンパイルする必要があることをすべて忘れることができます.powershellとpecl / pearインストールを使用すると、実際にサフィックスエラーが発生します.

誰もその問題を解決しましたか? どんな助けでも大歓迎です

ごきげんよう、リチャード

4

3 に答える 3

3

PDO 拡張機能は、Microsoft が提供しているネイティブ ドライバーと同じではありません。PDO の場合、有効にする必要があります

extension=php_pdo_mssql.dll

あなたのphp.iniで。

通常、このファイル (php_pdo_mssql.dll) は PHP 拡張ディレクトリ (C:...\php\ext) にあります。そこにない場合は、http: //windows.php.net/download/ から PHP をダウンロードして、そこにあるパッケージから拡張機能を取得できます (もちろん、PHP バージョンに対応するものを取得してください)。

//編集: 最新のコメントを読んでください。この拡張機能は現在非常に長い間利用可能であり、機能していると見なすことができます。使用が許可されていない場合は、ネイティブ ドライバーが PHP に提供する関数を使用するようにコードを書き直す必要があります。

于 2012-06-28T14:06:34.650 に答える
3

もう 1 つの可能性は、php 拡張機能にデフォルトで含まれている odbc ドライバーを使用することphp.iniです。

extension=php_pdo_odbc.dll

その後、サーバーを再起動することを忘れないでください;-)

そして、次のように使用します。

$db = new PDO('odbc:Driver={SQL Server};Server=192.168.x.x;Database=DatabaseName; Uid=User;Pwd=Password');
$stmt = $db->query("SELECT the_usual FROM aTable WHERE all='well'");
于 2014-04-29T08:06:21.570 に答える
0

大丈夫。私はそれが最近の1つだと思います。

MS から提供された拡張機能から間違った拡張機能をロードしました。php_pdo_sqlsrv_53_nts ではなく 使用する必要がありましたphp_sqlsrv_53_nts

助けてくれてありがとう

于 2012-06-28T14:07:41.703 に答える