我在从 mysql phpmyadmin(版本 4.0)表获取 JSON 数据时遇到问题,我尝试过 PDO 和 mysql_connect。
我的想法:mysql--> PHP--> echo json
与我的服务器的连接正常,并且 SQL 语句运行良好。我已经测试过了。但是 JSON 本身的“json_encode”(和其他一些)是不可能的。 json数组未构建。
PhpMyAdmin 中是否有需要注意的设置?
PDO:
$query = $pdo->prepare('SELECT p.*, count(r.rate) AS rates, avg(r.rate) AS average from plugins p left join rate r on p.title = r.title group by p.title');
$query->execute();
$row = $query->fetchAll();
// send the data encoded as JSON
$json = json_encode($row, JSON_UNESCAPED_UNICODE);
echo $json;
print_r($row);
exit;
结果是:
Array ( [0] => Array ( [id] => 153 [0] => 153 [title] =>
我哪里错了?我将服务器更新到 PHP 7.0,但现在代码无法运行。在更新之前,一切工作正常,并且有一个很长的 json 数组(应该是这样的)
应该怎样
{{"id":"1","title":"ExmapleTitle"....},{"id":"2","title":"ExmapleTitle2"....}...}
最佳答案
您必须调用execute()
<?php
$pdo = new PDO('mysql:host=xxxxx;dbname=xxxxx', 'xxxxxx', 'xxxxxx');
$statement=$pdo->prepare("SELECT p.*, count(r.rate) AS rates, avg(r.rate) AS average from plugins p left join rate r on p.title = r.title group by p.title");
$statement->execute(); // <<< --- You are missing this
$data = $statement->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($data); //Echo: data ... voila
关于php - 在 PHP 7.0 中编码多维数组不起作用 (json_encode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45402031/