使用PHP在Linux中连接MS Access DB

时间:2013-03-14 12:03:25

标签: php pdo odbc unixodbc

我的网站托管在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] [驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序

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

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语句。

1 个答案:

答案 0 :(得分:1)

docs for odbc_connect说它会返回两件事之一。

  1. ODBC连接。
  2. 错误时错误。
  3. 您的代码应该查找FALSE,而不是例外。

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