我尝试使用 PHP PDO 从我的 ubuntu 网络服务器连接到 MS Access 数据库,但无法连接。我收到此错误:
Connexion Access échouée : SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
我的连接类别是:
class GesEcoleService{
var $dsn;
var $user;
var $password;
var $dbh;
public function Connect(){
$this->dsn = 'odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=/var/www/rep/bd/GesEcoles.mdb;Uid=';
$this->user = '';
$this->password = '';
try {
$this->dbh = new PDO($this->dsn, $this->user, $this->password);
}
catch (PDOException $e) {
echo 'Connexion Access échouée : ' . $e->getMessage();
}
}
}
答案1
也遇到了这个问题。我发现 MS Access 的语法略有变化:
$db = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$dbName;Uid=Admin");
答案2
如果系统中的 PHP 组件处于活动状态以使用 PDO 和 ODBC,请查看以下内容。
连接的正确语法是:
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=$dbUser; Pwd=$dbPassword;");
观察差异,您的代码没有发送该Pwd=
部分。