0

我正在尝试将 ODBC 与 php 一起使用,但我似乎遇到了一些问题。这是我的代码:

<?php
    $connect = odbc_connect("digitallibrary", "root", "");
    $sql = "SELECT name FROM books";
    $result = odbc_exec($connect, $sql);
    echo $result;

    while (odbc_fetch_row($result)) {
        $name = odbc_result($result, "name");
        print("$name\n");
    }
    odbc_close($connect);
    ?>

我还安装了 mysql odbc 连接器并添加了这个系统 DSN: 数据源名称:digitallibrary TCP/IP 服务器:localhost 端口 80 用户:root 数据库:digitallibrary

当我运行我的代码时,我得到了这个警告,但没有打印:

警告:odbc_connect():SQL 错误:[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配,SQLConnect 中的 SQL 状态 IM014,位于 E:\Program Files\xampp\htdocs\DigitalLibrary\index。第 9 行的 php

警告:odbc_exec() 期望参数 1 是资源,布尔值在第 11 行的 E:\Program Files\xampp\htdocs\DigitalLibrary\index.php 中给出

警告:odbc_fetch_row() 期望参数 1 是资源,在第 14 行的 E:\Program Files\xampp\htdocs\DigitalLibrary\index.php 中给出 null

警告:odbc_close() 期望参数 1 是资源,布尔值在第 18 行的 E:\Program Files\xampp\htdocs\DigitalLibrary\index.php 中给出

我究竟做错了什么?

4

1 回答 1

2

现在,您正尝试将 64 位应用程序与 32 位 ODBC 驱动程序一起使用,反之亦然。您应该检查您使用的是 64 位还是 32 位的 PHP 应用程序。之后,您必须启动正确的 ODBC 管理员。有32 bit和 和2 种类型64 bit

如果您使用的是 64 位 ODBC 管理员:它位于管理工具、控制面板中

如果您使用 32 位 ODBC 管理员:您应该进入路径%windir\syswow64\odbcad32.exe.

当您设置了正确的 ODBC 管理员时。您还需要创建系统 DSN。如果您在管理员中找不到 MS Access 驱动程序,则需要为该架构下载一个。

编辑:你可以从这里下载 32 位

希望这可以帮助。

于 2013-06-12T17:53:35.543 回答