我有网站托管在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的文档说明它返回以下两种情况之一:
- ODBC连接
- 错误时为FALSE。
你的代码应该寻找FALSE,而不是一个异常。
文档还提供了几种不同类型的连接的示例。但是我认为Bluehost在他们所有的Linux服务器上安装Microsoft Access驱动程序的可能性小于零。