【问题标题】:Columns are not shown in PHP querty but are shown in the phpmyadmin interface for MariaDB列未显示在 PHP 查询中,但显示在 MariaDB 的 phpmyadmin 界面中
【发布时间】:2018-06-06 19:35:18
【问题描述】:

我编写了一个简单的 PHP 脚本来为我提供一些数据,但我无法显示所有列(作为 JSON 字符串),但在最新 MariaDB 的 PHPmyadmin 前端中显示了所有列。这个错误的有趣之处在于,通过相同的脚本,另一个查询(不同的 POST 变量值)显示了所有预期的列。在第一个查询中,顺序也会变得混乱。

我在 PHP 脚本中的结果:

{"id":"2","name":"it","mail":"john.doe@contoso.com","surname":"john"}

预期结果(在 Phpmyadmin 中也显示为以正确查询顺序排列的行):

{"id":"2","name":"john","surname":"doe", "department":"it","mail":"john.doe@contoso.com"}

我可以用一些肮脏的技巧(最后一个选项)修复订单错误,但列是真正的问题。 MariaDB 或/和 PHP 中是否有列限制?我不确定要寻找什么来解决此错误。

PS:我用谷歌搜索了一下,官方 MariaDB 网站上有人说有一个 1000(我使用相同的存储引擎)列限制。我也查了

    while($r = mysqli_fetch_assoc($sth))
    {
    $rows[] = $r;
    }

while($r = mysqli_fetch_array($sth)){$rows[] = $r;}

第二个选项给了我我想收到的一切,但它仍然不是我想要的结果,因为一切都是duplicated。此循环之后的唯一行是

echo json_encode($rows);
mysqli_close($link);?>

我和社区发现了什么:

1.$rows[0] = $r; >>只显示一条记录,但格式仍然不正确。

  1. array_push($rows,$r); >> 不能解决问题。

  2. echo json_encode($rows[0]);print_r($rows[0]) >> {"ID":"6","Name":"IT Department","Surname":"Doe","Email":"john.doe@contoso.com","‌​DeparmentRole":"Main‌​tanacei","Available"‌​:"Everyday from 8am to 17pm","Phone Number":"44 1206 256000","Office":"A1-Maitanance","CompanyRank":"standard employee"} 和 print_r 相同。

【问题讨论】:

  • 如果你使用$rows[0] = $r;会怎样
  • 结果是一样的。 array_push($rows,$r); 也不能解决问题。
  • 请同时提供echo json_encode($rows[0]);print_r($rows[0]);
  • echo result: {"ID":"6","Name":"IT Department","Surname":"Doe","Email":"john.doe@contoso.com","DeparmentRole":"Maintanacei","Available":"Everyday from 8am to 17pm","Phone Number":"44 1206 256000","Office":"A1-Maitanance","CompanyRank":"standard employee"} print_r 的数据是相同的,只是格式不同(Array([ID]=>6,...)。当我将完全相同的查询复制到 phpmyadmin 界面并在数据库中运行时,我获取其他列,并且值在正确的位置(名称>约翰,部门=> IT,...)。
  • @Hackerman 问题解决了。

标签: php json mysqli phpmyadmin mariadb


【解决方案1】:

所以仔细观察就成功了。我创建了两个具有相同列名的表。当我们有两列时没有错,但是当我们加入它们时,我们会遇到真正的混乱,原来的列已经被加入的那一列覆盖了,还解释了什么,为什么顺序混乱。
所以记住
可以“独立”的表中拥有两列OK,但是当加入它们时,所有列都必须具有唯一性名称。我不明白的是,为什么 AS 关键字无法使用别名显示它并采用常规列名。

【讨论】:

    猜你喜欢
    • 2013-02-05
    • 1970-01-01
    • 2022-12-06
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多