【发布时间】:2014-11-28 03:52:29
【问题描述】:
我正在使用 CentOS 6.5 通过 PHP 创建与 Microsoft Access .mdb 文件的 PDO ODBC 连接。
我正在使用 MDBTools 和 unixODBC。
我的 odbcinst.ini 看起来像这样
[MDBToolsODBC]
Description=MDBTools Driver
Driver=/usr/lib64/libmdbodbc.so.0.0.0
FileUseage=1
Threading=1
我的 odbc.ini 看起来像这样
[dashboard]
Description = Dashboard
Driver = MDBToolsODBC
Servername = localhost
Database = /mnt/inetpub/databases/dashboard.mdb
Username =
Password =
我正在尝试像这样通过 PHP 进行连接
$db = new PDO("odbc:DRIVER=MDBToolsODBC;DSN=dashboard;");
在收到错误消息数小时后,我终于能够解决所有问题,但现在当我尝试连接时,谷歌浏览器说
No data received
Unable to load the webpage because the server sent no data.
Error code: ERR_EMPTY_RESPONSE
我不确定这是不是因为我的 DSN 设置。当我执行isql dashboard 时,我得到了
+----------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+----------------------------------+
不知道如何解决这个问题,因为这是我第一次使用任何形式的 linux。
这是我尝试从数据库中调用信息的方式。
在需要数据库信息的文件中,我使用
<?php
include("inc/config.php");
?>
注释掉连接字符串
//$db = new PDO("odbc:DRIVER=MDBToolsODBC;DSN=dashboard;");
允许加载 HTML 和 CSS,但当然不会从数据库中提取数据。这就是让我认为某种连接字符串存在问题的原因。
我正在尝试像这样执行一个简单的 SQL 查询,这比我在开发中需要运行和使用的查询要简单得多,但如果我能得到这样简单的工作,我可以弄清楚其余的。
$problems = $db->prepare("SELECT problems.id FROM problems;");
$problems->execute();
$result = $problems->fetchColumn();
echo $result;
编辑:我发现我要查询的表中存在“分段错误”。其他表似乎工作正常!
【问题讨论】:
-
你能发布你用来提供信息的代码吗?
-
@cwscribner 我在帖子底部添加了一些附加信息。我相信,问题不在于我如何提取数据的 SQL,而在于连接字符串本身,如上所述。谢谢。
-
问题解决了吗?