在以下几行中,如果我不尝试将某些内容推送到$ dataJson,则一切正常。

    $reponse = $bdd->query("SELECT Comp_Name,Comp_Email
        FROM Company");

    while ($donnees = $reponse->fetchAll(PDO::FETCH_ASSOC)) {
        $dataJson = json_encode($donnees);
        $dataJson.push({Col1:'Company Name',Col2:'Email'});
        echo $dataJson;
    };


我想将最后一个对象添加到json_encode生成的对象数组中。

我可能会错过一些简单的事情,因为我在互联网上找到的所有提示都无法解决我的问题。

谢谢

最佳答案

首先,您不需要循环调用fetchAll()。它一次获取所有结果。

接下来,您似乎正在将Javascript语法混入PHP中。 PHP不使用.shift()添加到数组,也不使用{}作为对象的语法。

接下来,您不推送到JSON,而是推送到数组,然后将数组编码为JSON。

如果希望列标题位于数组的开头,则应使用array_unshift(),而不是array_push()

因此应该是:

$donnees = $response->fetchAll(PDO::FETCH_ASSOC);
array_unshift($donnees, array('Col1' => 'Company Name', 'Col2' => 'Email'));
$dataJson = json_encode($donnees);
echo $dataJson;

07-27 21:32