php不会让我回复JSON字符串

时间:2017-02-05 13:07:10

标签: php

进行AJAX调用我想从数据库中选择一些数据并发送回客户端。 $result的返回值为SELECT QUERY

案例1:此工作正常

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

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

                       . "},";
    }
}
$str = $str . "]";
echo str;

CASE2:这也很好用:

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

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

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

$str = $str . "]";

echo $str;

CASE3: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()在客户端解析它。当我只有一个键值对时,Case1和2工作正常。但是一旦我输入2个键值对,我就会收到错误:

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

2 个答案:

答案 0 :(得分:3)

你真的需要使用适当的功能。

养成良好的编程习惯。

$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";

答案 1 :(得分:1)

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

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

可能在您的代码中缺少点。检查一下:

$str = $str . "{" .

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

. "},";