1

bluehost.com (Linux サーバー) でホストされているサイトがあり、特定のデータ エクスポートを MS Access ファイルにエクスポートする必要があるユース ケースがあります。

MS Access ファイルに接続する次のコードがあります。

$dbh = null;    
try{
  $dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=$file_path", $user_name, $password, $db_info);
}catch(PDOException $e){
  echo $e->getMessage();      
}   
return $dbh;

しかし、ホスティングサーバーで上記のコードを実行すると、エラー SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified が発生しました

後で検索した後、DB接続のコードを次のように変更しました

try{
  $conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$file_path", ACCESS_DB_USERNAME, ACCESS_DB_PASSWORD);
}catch(Exception $ex){
  echo $ex->getMessage();
}

上記のコードでは、例外は発生しませんでしたが、$conn は NULL で、両方のコード スニペットがローカルの Windows マシンで正常に動作しています。

問題を解決するのを手伝ってもらえますか?? 私は接続を確立し、MS Access DB で INSERT INTO ステートメントを実行したいと考えています。

4

1 に答える 1

2

odbc_connectのドキュメントには、2つのうちの1つが返されると書かれています。

  1. ODBC接続。
  2. エラーの場合はFALSE。

コードは、例外ではなくFALSEを探す必要があります。

ドキュメントには、いくつかの異なる種類の接続の例もあります。しかし、BluehostがすべてのLinuxサーバーにMicrosoftAccessドライバーをインストールする可能性はゼロ未満だと思います。

于 2013-03-14T14:07:02.377 に答える