我在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;
答案 0 :(得分:0)
字符串中的反斜杠需要进行转义。尝试
$database_path = $_SERVER['DOCUMENT_ROOT']."\\Database11.mdb";
或只是使用正斜杠
$database_path = $_SERVER['DOCUMENT_ROOT']."/Database11.mdb";
因为正斜杠不必被转义,但仍能完美运行。
同时检查$ _SERVER [' DOCUMENT_ROOT']是否指向正确的位置。