Couldn't fetch Mysqli_result

被刻印的时光 ゝ 提交于 2020-11-29 04:44:05

问题


I've got this error

Warning: mysqli_fetch_array() [function.mysqli-fetch-array]: Couldn't fetch mysqli_result in /home/fights7/public_html/include/load_more_home_posts.php on line 12

And would like to know what I've done wrong with the below code?

$articles_data = mysqli_query($mysqli,"SELECT * FROM streamdata WHERE streamitem_id < '$lastID' ORDER BY streamitem_id DESC LIMIT 10") or die(mysql_error());
while($articles_info = mysqli_fetch_array($articles_data)) {
$json = array();
$json['streamitem_id'] = $articles_info['streamitem_id'];
$json['streamitem_content'] = $articles_info['streamitem_content'];
$json['streamitem_timestamp'] = $articles_info['streamitem_timestamp'];
mysqli_free_result($articles_data);

回答1:


Straight away, it appears that you are calling mysqli_free_result() inside your fetch loop, so after the first loop iteration, your result resource has been closed and freed, and no more results will be available.

while($articles_info = mysqli_fetch_array($articles_data)) {
  $json = array();
  $json['streamitem_id'] = $articles_info['streamitem_id'];
  $json['streamitem_content'] = $articles_info['streamitem_content'];
  $json['streamitem_timestamp'] = $articles_info['streamitem_timestamp'];
  // Don't do this!
  //mysqli_free_result($articles_data);
}
// If you need to, free it outside the loop
mysqli_free_result($articles_data);

I note that you're calling mysqli_fetch_array() without specifying MYSQLI_ASSOC, and so you're getting both numeric and associative keys back. If you are using everything in your JSON, you don't need to do all those assignments if you use MYSQLI_ASSOC or mysqli_fetch_assoc():

while($articles_info = mysqli_fetch_assoc($articles_data)) {
  // No need for the $json array. Just use $articles_info directly
  // if you were going to json_encode() it.
}


来源:https://stackoverflow.com/questions/12237683/couldnt-fetch-mysqli-result

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!