我有一个带有MySQLI
db包装器的PHP类。我知道实际句柄运行正常,因为$result->num_rows
返回1.
我正在处理这样的循环,它不起作用:
if($num != 0) //I KNOW that $num >= 1
{
$response['posts'] = array();
$reachedloop = "false";
while($row = $result->fetch_array(MYSQLI_ASSOC))
{
$reachedLoop = "true";
$post = array();
$post['title'] = $row['Post_Title'];
$post['songTitle'] = $row['Song_Title'];
$post['artist'] = $row['Song_Artist'];
$post['album'] = $row['Album_Title'];
$post['latitude'] = $row['Post_Latitude'];
$post['longitude'] = $row['Post_Longitude'];
$post['desc'] = $row['desc'];
array_push($response['posts'], $post);
}
$response["success"] = 1;
echo $reachedloop
echo json_encode($response);
调试显示while
声明导致错误。没有在这里使用正确的语法找到SO帖子或文档。
答案 0 :(得分:1)
我还没有被允许发表评论但是我想注意你在代码末尾附近遗漏了一个半冒号:echo $reachedloop
。
修改:您还提到您的查询是$results
,但在您的代码中,您有$result
,这可能只是一个错字。此外,你没有if语句的结束括号,它可能在复制/粘贴到StackOverflow时被截断。
答案 1 :(得分:-1)
您可能需要使用以下表单检查值:
while(($row = $result->fetch_array(MYSQLI_ASSOC)) !== null)