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

后来经过一番搜索,我将数据库连接的代码更改为

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的文档说它返回两件事之一。

  1. ODBC 连接。
  2. 错误时为 FALSE。

您的代码应该查找 FALSE,而不是异常。

文档还提供了几种不同类型的连接示例。但我认为 Bluehost 在其所有 Linux 服务器上安装 Microsoft Access 驱动程序的可能性小于零。

于 2013-03-14T14:07:02.377 回答