使用PHP查询MDB文件,并返回JSON

2023-12-02

我有一个 Microsoft Access 数据库,我正在尝试使用 PHP 查询该表,并输出有效的 JSON。我有一个 MSSQL 数据库的等效代码,我正在尝试让我的代码做同样的事情,但只是针对 Access 数据库。

这是MSSQL代码

$myServer = "server";
$myDB = "db";
$conn = sqlsrv_connect ($myServer, array('Database'=>$myDB));

$sql = "SELECT *
        FROM db.dbo.table";

$data = sqlsrv_query ($conn, $sql);

$result = array();   

do {
    while ($row = sqlsrv_fetch_array ($data, SQLSRV_FETCH_ASSOC)) {
        $result[] = $row;   
    }
} while (sqlsrv_next_result($data));

$json = json_encode ($result);

sqlsrv_free_stmt ($data);
sqlsrv_close ($conn); 

这是我对 MDB 文件所做的尝试

$dbName = "/filename.mdb";

if (!file_exists($dbName)) {
    die("Could not find database file.");
}

$db = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName", $user, $password);

$sql = "SELECT *
        FROM cemetery";

$data = $db->query($sql); // I'm getting an error here
$result = array();   

// Not sure what do do for this part...
do {
    while ($row = fetch($data, SQLSRV_FETCH_ASSOC)) {
        $result[] = $row;   
    }
} while (sqlsrv_next_result($data));

$json = json_encode ($result);

我遵循此尝试连接到数据库:http://phpmaster.com/using-an-access-database-with-php/

目前,这给了我 500 内部服务器错误。我期望将这样的字符串保存在变量中$json

[
    {
        "col1":"col value",
        "col2":"col value",
        "col3":"col value",
    },
    {
        "col1":"col value",
        "col2":"col value",
        "col3":"col value",
    },
    {
        etc...
    }
]

有人可以帮我移植上面的 MSSQL 代码,以便我可以将它与 MDB 数据库一起使用吗?谢谢您的帮助!


编辑:我正在逐行注释掉这些行,它在该行向我抛出 500 错误$data = $db->query($sql);。我查看了错误日志,发现了错误Call to a member function query() on a non-object。我已经有线路了extension=php_pdo_odbc.dll在我的 php.ini 文件中取消注释。有人知道可能是什么问题吗?


你只需要1个循环, fetchAll 是你的可迭代朋友:

while ($row = $data->fetchAll(SQLSRV_FETCH_ASSOC)) {
    $result[] = $row;   
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用PHP查询MDB文件,并返回JSON 的相关文章

随机推荐

  • AngularJS 与 ASP.NET MVC 混淆

    请注意 我在 Stack Overflow 上读过一些类似的问题 但没有从这些答案中得到我想要的明确概念 我非常清楚为什么以及如何将 AngularJS 与 ASP NET Web API 结合使用 但我对 AngularJS 与 ASP
  • 自定义 IKImageBrowserView 组外观

    我正在尝试更改 IKImageBrowserView 组标题的外观 我已经看到我们可以使用 IKImageBrowserGroupHeaderLayer 提供自定义 CALayer 但我根本不知道如何使用它 如何获取图层的大小 知道是否选择
  • Git - 运行更新后子模块 HEAD 总是分离?

    我在 gitmodules 文件中有子模块的配置 submodule sub shallow true branch master path sub url https path to repo git 现在我希望有人克隆我的存储库然后运行
  • 使用 Angular JS 自定义分页 - 需要在第一页中显示 div 元素,该元素应在单击“下一步”的第二页上重复

    我有一个分页窗格 我有一个大小为 42 的数组 第一页显示 24 个 div 元素 第二页显示其余 18 个元素 我的问题是如何在第 1 页中显示元素 1 到 24 在第二页中显示元素 19 到 42 这意味着我需要在这两页中重叠元素 实现
  • 使用源文件/行显示来自构建时工具的错误

    我的项目有一个 MSBuild 目标 它运行一个生成一些文件的工具
  • 如何在 Java 中指定我自己的 Rhino 上下文?

    我试图确保我的 Rhino 脚本 在 Java 6 下运行 是严格的 这样如果脚本开发人员拼错了表达式 我希望抛出异常 目前发生的情况是表达式简单地计算为 未定义 现在根据 Mozilla 组织https developer mozilla
  • 如何使用PHP问题从另一个数组中删除一个数组值

    我想检查示例 1 中的任何数组值是否在示例 2 中 如果在 则将它们从示例 2 中删除 我怎样才能使用 PHP 来做到这一点 实施例1 Array 0 gt 3 1 gt 5 实施例2 Array 0 gt 3 1 gt 3 2 gt 4
  • Rails - 当我仅访问生产中的操作时,401 未经授权

    我正在使用 Ruby On Rails 3 0 9 并且在开发环境中一切正常 当我切换到生产环境或将其上传到我们的服务器时 登录后我会返回到相同的登录页面 当我检查日志时 我可以看到以下内容 Started POST users login
  • C# 7.0 适用于 .NET 4.5 吗?

    我在 Visual Studio 2017 RC 中创建了一个项目 以检查是否可以在 NET Framework 4 5 项目中使用新的 C 7 0 语言功能 在我看来 参考后System ValueTupleNuGet 新元组工作正常 还
  • 如何让边框底部更接近文本?

    我想对链接使用边框底线 而不是文本装饰下划线 但我需要让线条更靠近文本 负填充是不可能的 那么我该怎么办 这是一个例子 a color 245fc1 position relative border bottom 1px solid 245
  • 如何在 Visual Studio 模拟器上删除设备的框架?

    我只需要与开发和测试相关的内容 我不需要巨大的 模拟 哑边框区域 该区域主要用于抓取和重新定位模拟器窗口 如今 即使是真正的设备也开始消除这些边框 我不需要它提供的有关设备方向的方向线索 在工具条或主窗口中 只需小的抓握手柄就足够了 它浪费
  • Angular v10 Service Worker 官方更新方法不起作用

    编辑摘要 我创建了一个最小的可重现的例子 我不再相信这与 css 或任何相关 font face就此问题作出的声明 问题在于官方的 Angular 方式swUpdate checkForUpdate 可能与appRef isStable订阅
  • 如何使用 Express 服务器对 api.github 进行 GET 调用

    我已经被封锁三天了 并在互联网上进行了研究 这是代码 api js const express require express const router express Router var http require http var ht
  • 如何使用内胚包装器来修复这个练习?

    这是我之前的后续question 假设我需要按路径查找 XML 节点 我可以编写一个函数来按名称获取子节点 import scala xml Node gt XmlNode def child name String XmlNode Opt
  • 将 print 的输出分配给 python 中的变量

    我想知道如何将 print 的输出分配给变量 so if mystring a 12 then print mystring a 12 我想像 kwargs 一样传递这个 test mystring 我怎样才能做到这一点 有关更多解释 我有
  • 如何使用自定义ant规则正则表达式更改属性文件中的属性

    在我的 Android 项目中 我在 project properties 文件中设置了以下属性 proguard config proguard cfg 我需要一个自定义宏来以某种方式设置和取消设置此属性 如何使用宏和正则表达式设置取消设
  • C# 引用和指针有什么区别?

    我不太明白 C 引用和指针之间的区别 它们都指向记忆中的某个地方 不是吗 我能弄清楚的唯一区别是指针不那么聪明 不能指向堆上的任何东西 可以免于垃圾回收 并且只能引用结构或基类型 我问这个问题的原因之一是 人们认为人们需要很好地理解指针 我
  • 在curl中发送json文件并使用plumber在R中接收它

    我需要发送一个包含多个值的 json 文件并使用水管工在 R 中接收它 我尝试过这个 但它似乎不起作用 library rjson install packages rjson get predict post predict functi
  • Jquery 实时复制另一个文本框值

    我想获取另一个文本框的值并将其实时输入到另一个文本框中 如何检测 TEXT 3 是否已更改 如果 TEXT 3 值更改 则必须将其输入到 TEXT 4 为了您的方便 这里是代码和演示 HTML
  • 使用PHP查询MDB文件,并返回JSON

    我有一个 Microsoft Access 数据库 我正在尝试使用 PHP 查询该表 并输出有效的 JSON 我有一个 MSSQL 数据库的等效代码 我正在尝试让我的代码做同样的事情 但只是针对 Access 数据库 这是MSSQL代码 m