繁体   English   中英

PHP无法连接到PDO ODBC驱动程序

[英]PHP Cannot connect to PDO ODBC Driver

我的PHP找不到我的odbc驱动程序。 我已下载并重新安装了多次。 谁能帮我解决这个错误:

QLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data
source name not found and no default driver specified"

这是我的PHP代码:

$dbName = "C:\Users\David\Documents\SCHOOLNEW\Assignment5-PROG1800\database\as4.mdb";
if (!file_exists($dbName))
{
    die("Could not find database file.");
}
try 
{
    // Connect
    $dbh = new PDO("odbc:Driver={Microsoft Access Driver(*.mdb, *.accdb)};Dbq=C:\Users\David\Documents\SCHOOLNEW\Assignment5-PROG1800\database\as4.mdb;Uid=Admin");

    // INSERT data
    $count = $dbh->exec("INSERT INTO part(vendorNo,description,onHand,onOrder,cost,listPrice) VALUES ('$vendorNo', '$desc', '$onHand', '$onOrder', '$cost', '$listPrice')");

    // echo the number of affected rows
    echo $count;

    // close the database connection
    $dbh = null;

}

catch(PDOException $e)
{
    echo $e->getMessage();
} 

php with apache on xampp运行php with apache on xampp 所有这些都在本地计算机上。 我的系统是64位。 我不确定是否与系统和驱动器类型,语法或需要安装的某些驱动程序有关。 我只想将表单中的数据插入计算机上的数据库。

Driver={Microsoft Access Driver(*.mdb, *.accdb)}

不是有效的ODBC驱动程序名称,因为它缺少空格。 较新的“ ACE” ODBC驱动程序的正确名称是

Driver={Microsoft Access Driver (*.mdb, *.accdb)}

但是,在这种情况下,PHP在32位环境中运行,并尝试打开.mdb数据库,因此较旧的“ Jet” ODBC驱动程序...

Driver={Microsoft Access Driver (*.mdb)}

……也可以。

您可以在转义斜线后放置路径,然后尝试:

$dbName = "C:\\Users\\David\\Documents\\SCHOOLNEW\\Assignment5-PROG1800\\database\\as4.mdb";

在代码中提供的所有路径中转义斜杠,然后尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM