列不显示在PHP querty中,但显示在MariaDB的

时间:2017-12-25 16:43:41

标签: php json mysqli phpmyadmin mariadb

我写了一个简单的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相同。

1 个答案:

答案 0 :(得分:0)

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