【问题标题】:PHP Cannot connect to PDO ODBC DriverPHP 无法连接到 PDO ODBC 驱动程序
【发布时间】:2016-07-24 20:58:28
【问题描述】:

我的 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。这一切都在本地机器上。我的系统是 64 位的。我不确定它是否与系统和驱动器类型或我的语法或我需要安装的某些驱动程序有关。我只想将表单中的数据插入计算机上的数据库中。

【问题讨论】:

  • 拥有您的 PHP 脚本echo (8 * PHP_INT_SIZE) . "-bit<br/>";。它显示什么?
  • 显示 32 位。我认为这是 32 位和 64 位版本的 OBCD 混淆的问题。
  • 是的,几乎可以肯定这是一个“位”问题。但是,由于您的 PHP 代码在 32 位环境中运行并且您正在打开一个 .mdb 文件,您可以使用Driver={Microsoft Access Driver (*.mdb)}(没有, *.accdb)并且它应该可以工作。 (还要注意有一个空格:Driver (。)
  • 天哪....那个空间修好了!谢谢上帝,谢谢。我起得太晚了试图解决这个问题!成功了!

标签: php mysql ms-access pdo odbc


【解决方案1】:
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)}

...也可以。

【讨论】:

  • ... 可用名称可以在控制面板的 ODBC 管理员中找到,但要确保打开属于正确架构(32 位或 64 位)的名称相当棘手。
【解决方案2】:

能不能把斜线转义后的路径放好再试试:-

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-15
    • 2014-07-23
    • 2018-03-02
    • 2011-12-21
    • 2018-04-30
    • 2015-05-29
    • 1970-01-01
    • 2013-11-11
    相关资源
    最近更新 更多