私はPHPのPDO
クラスを介してodbcデータベースに接続しようとしています:
$dsn = 'odbc:CS_HDZipCodes32bit';
$username = 'demo';
$password = 'skdemo!';
$connection = new PDO($dsn, $username, $password);
die( var_dump( $connection ) );
しかし、私がすると、エラーが発生します:
致命的なエラー:C:\ inetpub\wwwroot\pdoClass.php:7スタックトレース:#0 C:\ inetpub\wwwroot\pdoClass.php(7):PDO- > __ construct( 'odbc:CS_HDZipCo ...'、 'demo'、 'skdemo!')#1 {main}がC:\ inetpub\wwwroot\pdoClass.phpで7行目にスローされる
$dsn
valueは、ODBC Manager。)で作成したDSNの名前です。
別のデモファイルを作成し、odbc_connect
:
$connection = odbc_connect("CS_HDZipCodes32bit", 'demo', 'skdemo!');
if(!$connection){
die('connection failed');
}
$statement = "SELECT * FROM ZipCodes";
$result = odbc_exec($connection, $statement);
// Outputs the zips as expected
var_dump(odbc_result_all($result));
私は PDO-ODBC ドキュメントと他のオンラインリソースを掘り下げてきましたが、なぜPHPがドライバーを見つけることができないのかわからないPDOから試します。
何か案は?
Phpinfoページを開いて、Marc Bのコメントごとにodbcドライバーがインストールされていることを確認しました。
これが別のドライバーでない限り、ドライバーがインストールされているように見えます。
Marc Bの追加コメントごとにphpiniをさらに調べると、POD ODBC特定のドライバーがインストールされていないようです:
したがって、ここで、pdo用のODBCドライバーがインストールされている場合、odbc
がリストの最後にありますか?
最初の質問のコメントでMarc Bから大きな助けを得た後、問題は私のWebサーバーでodbc
を有効にしてpdo_odbc
ドライバがインストールされました。
Webサーバーでodbcを有効にしましたが、PDO用のodbcドライバーがインストールされていませんでした。
このドライバーは、pdoを介してodbcデータベースにアクセスするために必要です。
installing pdo に関するphp.netのドキュメントによると、ドライバーは既にPHPビルドに含まれていて(バージョン5.5を使用しています)、php.ini
ファイル。
ドライバーを追加してサーバーを再起動した後、ドライバーをロードしました。
デモデータベースでPDOを使用したテストクエリが機能しました。
$dsn = 'odbc:CS_HDZipCodes32bit';
$username = 'demo';
$password = 'skdemo!';
$connection = new PDO($dsn, $username, $password);
$query = "Select * FROM ZipCodes";
$result = $connection->query($query);
foreach($result as $row){
var_dump($row);
}
ダンプアウト:
助けてくれてありがとうMarc B.