php - 在 PHP 7.0 中编码多维数组不起作用 (json_encode)

标签 php mysql json pdo encoding

我在从 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/

相关文章:

php - Apache 非常高的页面加载时间

json - protected header JWS

JSON 数据的 JavaScript SUM 和 GROUP BY

java - 获取所有路径变量

php - NGINX/PHP - 无法通过 php 脚本提供 jpeg

php - 触发计算,在插入一张表时影响另一张表

mysql - 列组上的Where子句

mysql - 从一个数据库字段检索单独的数字

php - 使用 Like 和 Left Join 进行搜索

php - 重复 - php 代码重复 MySQL 中的行 - 出了什么问题?