我写了一个简单的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相同。
答案 0 :(得分:0)
所以仔细观察就可以了。我创建了两个具有相同列名的表。当我们有两列时,没有错,但是当我们加入它们时,我们可能会有一个真正的混乱,原始列已被连接的列覆盖,还解释了为什么订单搞砸了。
请记住
在表格中两列 确定 确定,但当加入时,所有列必须具有独特性名称即可。我不明白,为什么AS关键字无法使用别名显示它并采用常规列名称。