进行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 ()
答案 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"] . '"'
. "},";