web-dev-qa-db-ja.com

MSSQL PDOはドライバーを見つけることができませんでした

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の両方を試しました

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

9
user2333765

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

examples from documentation

7
Ivo

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

try {

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

} catch (PDOException $e) {

    echo $e->getMessage();
}

ソースと感謝: http://grover.open2space.com/content/use-php-and-pdo-connect-ms-sql-server

2
James