列未显示在 PHP 查询中,但显示在 MariaDB 的 phpmyadmin 界面中
Posted
技术标签:
【中文标题】列未显示在 PHP 查询中,但显示在 MariaDB 的 phpmyadmin 界面中【英文标题】:Columns are not shown in PHP querty but are shown in the phpmyadmin interface for MariaDB 【发布时间】: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;
>>只显示一条记录,但格式仍然不正确。
array_push($rows,$r);
>> 不能解决问题。
echo json_encode($rows[0]);
和 print_r($rows[0])
>> "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 相同。
【问题讨论】:
如果你使用$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 问题解决了。
【参考方案1】:
所以仔细观察就成功了。我创建了两个具有相同列名的表。当我们有两列时没有错,但是当我们加入它们时,我们会遇到真正的混乱,原来的列已经被加入的那一列覆盖了,还解释了什么,为什么顺序混乱。所以记住 在可以“独立”的表中拥有两列是OK,但是当加入它们时,所有列都必须具有唯一性名称。我不明白的是,为什么 AS 关键字无法使用别名显示它并采用常规列名。
【讨论】:
以上是关于列未显示在 PHP 查询中,但显示在 MariaDB 的 phpmyadmin 界面中的主要内容,如果未能解决你的问题,请参考以下文章