使用ODBC连接到数据库会导致警告并且不会打印任何内容

时间:2013-06-12 17:46:02

标签: php odbc

我正在尝试使用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 数据库:数字图书馆

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

  

警告:odbc_connect():SQL错误:[Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配,E:\ Program Files \ xampp \ htdocs \ DigitalLibrary中SQLConnect中的SQL状态IM014 9号线上的\ index.php

     

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

     

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

     

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

我做错了什么?

1 个答案:

答案 0 :(得分:2)

现在,您正在尝试使用带有32位ODBC驱动程序的64位应用程序,反之亦然。您应该检查您使用的是64位或32位的PHP应用程序。之后,您必须启动正确的ODBC管理员。有两种类型32 bit64 bit

  

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

中      

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

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

编辑:您可以从here

下载32位

希望这有帮助。