10

Microsoft SQL Server 2008 R2 (SQLEXPRESS) と共に XAMPP 経由でインストールされた PHP バージョン 5.3.8 を使用しています。私はドライバーを正しくインストールし(推測)、php.iniに正しい行を追加しました(正確にはextension = php_pdo_sqlsrv_53_ts_vc9.dll)。

次のようにサーバーに接続しようとしています:

try {

    $DBH = new PDO("mssql:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx');

} catch(PDOException $e) {

    echo $e->getMessage();
}

「ドライバーが見つかりませんでした」というエラーが表示され、問題を解決するためにあらゆる方法で微調整しました。他のすべての種類のドライバーを試しましたが、Apache が起動時にエラーを出さないのはこれだけです。phpinfo() を実行すると、0 に設定されている pdo_sqlsrv.log_severity を除いて、pdo_sqlsrv フィールドはすべて空白になります。

Microsoftからドライバを DLし、 2.0 と 3.0 の両方を試しました。

どんなアドバイスも素晴らしいでしょう!!

4

3 に答える 3

8

mssqlはそれを行う古い方法であり、sqlsrvより適切なはずです! 実際、拡張機能も呼び出されます (extension=php_pdo_ sqlsrv _53_ts_vc9.dll) ;)

try {

    $DBH = new PDO("sqlsrv:Server=xxxx;Database=xxxx", 'xxxx', 'xxxx');

} catch (PDOException $e) {

    echo $e->getMessage();
}

お役に立てれば!

ソース: http://php.net/manual/fr/ref.pdo-sqlsrv.connection.php

ドキュメントの例

于 2013-05-01T00:13:49.643 に答える
4

これが CentOS x86_64 マシンを実行しているためかどうかはわかりsqlsrvませんが、ドライバーとしては機能しませんでした。使用する必要がありましたdblib

try {

    $DBH = new PDO("dblib:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx');

} catch (PDOException $e) {

    echo $e->getMessage();
}

ソースと に感謝します。

于 2014-03-20T15:36:41.997 に答える