Php 在pdo中连接access数据库时出错

Php 在pdo中连接access数据库时出错,php,sql,Php,Sql,在php中使用pdo时出现以下错误 我的数据库位于C:xmapp/htdocs中,php文件位于C:xmapp/htdocs/selftest/ 我的错误: 错误:SQLSTATE[HY000]SQLDriverConnect:-1811[Microsoft][ODBC Microsoft Access驱动程序]找不到文件“”(未知)” 我的代码: $database_path = $_SERVER['DOCUMENT_ROOT']."\Database11.mdb"; //echo $data

在php中使用pdo时出现以下错误

我的数据库位于
C:xmapp/htdocs
中,php文件位于
C:xmapp/htdocs/selftest/

我的错误:

错误:SQLSTATE[HY000]SQLDriverConnect:-1811[Microsoft][ODBC Microsoft Access驱动程序]找不到文件“”(未知)”

我的代码:

$database_path = $_SERVER['DOCUMENT_ROOT']."\Database11.mdb";
//echo $database_path; die;
try
{
$conn = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$database_path; Uid=$db_username; Pwd=$db_password;");
$conn->setAttribute("PDO::ATTR_ERRMODE,PDO::ERRMODE_Exception");
$stmt=$conn->prepare("insert into user_details(firstname,lastname,filename,sex,qualification) values('$firstname','$lastname','$filename','$sex','$qualification')");
$stmt->exceute();   
}
catch(PDOException $e)
{
    echo "Error:".$e->getMessage();
}
$conn=null;

字符串中的反斜杠需要转义。试一试

$database_path = $_SERVER['DOCUMENT_ROOT']."\\Database11.mdb";
或者简单地使用正斜杠

$database_path = $_SERVER['DOCUMENT_ROOT']."/Database11.mdb";
因为正斜杠不必转义,但仍然可以完美地工作


还要检查$\u服务器['DOCUMENT\u ROOT']是否指向正确的位置

$\u服务器['DOCUMENT\u ROOT']
会为您输出什么?您是否希望这样?您是否在Windows上尝试了正斜杠而不是反斜杠?不工作请给出解决方案我尝试了正斜杠和反斜杠,但不工作文档根是正确的路径?尝试绝对路径(如果它使用反斜杠\\)是,当我回显$\u服务器['DOCUMENT\u ROOT']时它是正确的,它显示C:/xampp/htdocsok回显:“odbc:DRIVER={Microsoft Access DRIVER(*.mdb)};DBQ=$database\u path;Uid=$db\u username;Pwd=$db\u password;”它输出到-odbc:DRIVER={Microsoft Access DRIVER(*.mdb)};DBQ=C:/xampp/htdocs/Database11.mdb;Uid=;Pwd=