php不允许我回显JSON字符串

php不允许我回显JSON字符串,php,Php,通过一个AJAX调用,我想从DB中提取一些数据并发送回客户端。 $result是选择查询的返回值 案例1:这很好用 $str = "["; while($row = mysqli_fetch_assoc($result)) { $str = $str ."{". '"Name":'. '"'. $row["Name"] . '"' . "},"; }

通过一个AJAX调用,我想从DB中提取一些数据并发送回客户端。
$result
选择查询的返回值

案例1:这很好用

$str = "[";
    while($row = mysqli_fetch_assoc($result)) {
          $str = $str ."{". 

                            '"Name":'. '"'. $row["Name"] . '"'  

                       . "},";
    }
}
$str = $str . "]";
echo str;
案例2:这也很好:

$str = "[";
    while($row = mysqli_fetch_assoc($result)) {
          $str = $str ."{". 

                            '"ID":'. '"'. $row["ID"] //SEE HERE

                       . "},";
    }
} else {
    echo "0 results";
}

$str = $str . "]";

echo $str;
案例3:但下面给出了
500()的错误

$str = "[";
    while($row = mysqli_fetch_assoc($result)) {
          $str = $str ."{". 

                            '"ID":'. '"'. $row["ID"] . '",'   //SEE HERE
                            '"Name":'. '"'. $row["Name"] . '"'


                       . "},";
    }
} else {
    echo "0 results";
}

$str = $str . "]";

echo $str;
我想在以JSON格式生成echo str后发送它,并在客户端使用`JSON.parse()解析它。当我只有一个键值对时,案例1和案例2可以正常工作。但只要我放入两个键值对,我就会得到错误:

POST https://******************.php 500 ()

它返回500,因为脚本中有错误。您可以添加以下代码并检查错误的位置

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
可能你的代码中缺少点。选中此项:

$str = $str . "{" .

    '"ID":' . '"' . $row["ID"] . '",' .  
    '"Name":' . '"' . $row["Name"] . '"'

. "},";

它返回500,因为脚本中有错误。您可以添加以下代码并检查错误的位置

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
可能你的代码中缺少点。选中此项:

$str = $str . "{" .

    '"ID":' . '"' . $row["ID"] . '",' .  
    '"Name":' . '"' . $row["Name"] . '"'

. "},";

您确实需要使用适当的函数

养成良好的编程习惯

$rtn = []; //create array
while($row = mysqli_fetch_assoc($result)){
    //push result into array
    $rtn[] = ['ID'=> $row["ID"], 'Name'=> $row['Name']]; 
}

if($rtn)//if array has entries
    echo json_encode($rtn);//encodes result to json
else
    echo "0 results";

您确实需要使用适当的函数

养成良好的编程习惯

$rtn = []; //create array
while($row = mysqli_fetch_assoc($result)){
    //push result into array
    $rtn[] = ['ID'=> $row["ID"], 'Name'=> $row['Name']]; 
}

if($rtn)//if array has entries
    echo json_encode($rtn);//encodes result to json
else
    echo "0 results";

这不是我最好的方法friend@HBensiali我知道。你能告诉我另一种方式,这样我就可以在客户端接收JS对象数组了吗?这不是我最好的方式friend@HBensiali我知道。你们能告诉我另一种方式,这样我就可以在客户端接收JS对象数组了吗?