刚才工作很好,我得到JSON响应,这是一个JSON对象数组,现在它显示一个空白页,我不知道为什么!谁能找出问题所在吗?下面是PHP代码:
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="tourist"; // Database name
// Connect to server and select databse.
$con = mysqli_connect("$host", "$username", "$password","$db_name")or die("cannot connect");
if($con){
mysqli_set_charset($con ,'utf8');
$qry = "SELECT * FROM places";
$query=mysqli_query($con ,$qry);
if (!$query) {
$message = 'Invalid query: ' . mysql_error() . "'n";
$message .= 'Whole query: ' . $qry;
die($message);
}
$return_arr = array();
$row_array = array();
$num_rows = mysqli_num_rows($query);
if ($num_rows > 0) {
while ($r = mysqli_fetch_array($query)) {
$row_array['place_id'] = $r['place_id'];
$row_array['place_name'] = $r['place_name'];
//echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//$row_array['image'] = "http://localhost/tourist/". $r['db_image']; //.'" alt='"'" /"';
$row_array['image'] = "tourist/".$r['db_image'];
$row_array['des'] = $r['description'];
header('Content-Type: application/json');
array_push($return_arr,$row_array);
}
return json_encode($return_arr);
} else {
$return_arr['place_name'] = 'ERRO - Place inexistente';
}
header('Content-Type: application/json');
echo json_encode($return_arr);
return json_encode($return_arr);
mysqli_close($con);
} else {
$return_arr['place_name'] = 'ERRO - failure';
echo json_encode($return_arr);
return json_encode($return_arr);
}
?>
这里有一些错误
首先你是混合数据库访问API的你不能使用mysql_
和mysqli_
调用。当你与mysqli_
连接时,坚持使用
其次,你不使用return
,除非你是在一个功能。当你使用它时,它会在正常代码流中遇到的第一个脚本中杀死脚本,当然不会将数据发送回浏览器。
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="tourist"; // Database name
// Connect to server and select databse.
$con = mysqli_connect("$host", "$username", "$password","$db_name")or die("cannot connect");
if($con){
mysqli_set_charset($con ,'utf8');
$qry = "SELECT * FROM places";
$query=mysqli_query($con ,$qry);
if (!$query) {
//$message = 'Invalid query: ' . mysql_error() . "'n";
$message = 'Invalid query: ' . mysqli_error($con) . "'n";
$message .= 'Whole query: ' . $qry;
die($message);
}
$return_arr = array();
$row_array = array();
$num_rows = mysqli_num_rows($query);
if ($num_rows > 0) {
while ($r = mysqli_fetch_array($query)) {
$row_array['place_id'] = $r['place_id'];
$row_array['place_name'] = $r['place_name'];
//echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//$row_array['image'] = "http://localhost/tourist/". $r['db_image']; //.'" alt='"'" /"';
$row_array['image'] = "tourist/".$r['db_image'];
$row_array['des'] = $r['description'];
header('Content-Type: application/json');
array_push($return_arr,$row_array);
}
// This will be terminating the script
//return json_encode($return_arr);
} else {
$return_arr['place_name'] = 'ERRO - Place inexistente';
}
header('Content-Type: application/json');
echo json_encode($return_arr);
// not needed
//return json_encode($return_arr);
mysqli_close($con);
} else {
$return_arr['place_name'] = 'ERRO - failure';
echo json_encode($return_arr);
// Not needed
//return json_encode($return_arr);
}
?>