使用PHP生成包含大量行的JSON

使用PHP生成包含大量行的JSON,php,mysql,json,Php,Mysql,Json,我使用下面的代码生成JSON,在本地WAMP服务器上正常工作。但是,当我将文件导出到WEB时,脚本只在SELECT中生成json,如果查询结果大于10个,则不会生成任何内容,本地服务器上不会发生这种情况 有人有这个问题吗?是否需要编辑PHP.ini文件或其他文件 <?php //open connection to mysql db $connection = mysqli_connect("localhost","root","123","vendas") or d

我使用下面的代码生成JSON,在本地WAMP服务器上正常工作。但是,当我将文件导出到WEB时,脚本只在SELECT中生成json,如果查询结果大于10个,则不会生成任何内容,本地服务器上不会发生这种情况

有人有这个问题吗?是否需要编辑PHP.ini文件或其他文件

   <?php
    //open connection to mysql db
    $connection = mysqli_connect("localhost","root","123","vendas") or die("Error " . mysqli_error($connection));

    //fetch table rows from mysql db
    $sql = "SELECT * FROM os WHERE id_user = 15 and data_conclusao = '2017-03-02'";
    $result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));

    //create an array
    $emparray = array();
    while($row =mysqli_fetch_assoc($result))
    {
        $emparray[] = $row;
    }
    echo json_encode($emparray);

    //close the db connection
    mysqli_close($connection);
?>

检查数据是否包含UTF-8字符。如果是,请尝试将代码替换为:

while($row =mysqli_fetch_assoc($result)) {
     $emparray[] = array_map('utf8_encode', $row);
}

json_encode
是一个非常静音的函数,如果在编码过程中出现任何错误,它只返回false,没有错误消息。如果您确定
$emparray
确实包含所需的数据,那么下一个调试步骤就是使用它,这将帮助您了解那里发生了什么


造成这种行为的一个常见原因是输入字符串中的不可编码字符,或者通常在输入字符串中出现二进制加密。但是,只有当您解码错误消息时,您才能了解它-请遵循我提供的参考。

Seu código functionou apenas no formato que eu precisei,eu tentei editálo mais do que o erro.[{“id_equipe”:“100222”,“viatura”:“123”,“nome1”:“23456”},{“id_equipe”:“1022220”,“viatura”:“123”,“nome1”:“23456”}]
You could encode each row, one row at a time instead of encoding it in one big operation.    
$db=mysql_connect($host, $username, $password) or die('Could not connect');
    mysql_select_db($db_name, $db) or die('');

    $result = mysql_query("SELECT * from listinfo") or die('Could not query');

    if(mysql_num_rows($result)){
        echo '{"testData":[';

        $first = true;
        $row=mysql_fetch_assoc($result);
        while($row=mysql_fetch_row($result)){
            //  cast results to specific data types

            if($first) {
                $first = false;
            } else {
                echo ',';
            }
            echo json_encode($row);
        }
        echo ']}';
    } else {
        echo '[]';
    }

    mysql_close($db);