Linux下使用PHP连接MS Access DB


Connect MS Access DB In Linux Using PHP

我有网站托管在bluehost.com (Linux服务器),我有用例,我必须导出一些特定的数据导出到MS访问文件,

我有以下代码连接MS访问文件:

$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]数据源名称未找到,且未指定默认驱动

后来经过一番搜索,我将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语句。

odbc_connect的文档说明它返回以下两种情况之一:

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

你的代码应该寻找FALSE,而不是一个异常。

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