MYSQLI错误:在非对象

时间:2016-03-08 23:12:08

标签: php mysql html5 css3 mysqli

我想用一个内部连接来设置一个MYSQLI语句,它作为一个mysql_query运行良好,但现在SQL不能工作。

我假设我收到了非对象错误,因为SQL无法返回成功。我不明白,因为所有的表列名称完全匹配,就像我说它作为一个旧的mysql_result,我们有MYSQLI在页面的其他地方工作。桌子本身会有腐败吗?

错误:

  

警告:mysqli.prepare()[mysqli.prepare]:无法在第123行的file.php中获取mysqli

     

致命错误:在第123行的file.php中的非对象上调用成员函数execute()

代码:

<?php
$stmt = $db->prepare("SELECT A.ID, A.HEADER, A.CONTENT, A.PICTURE, A.CATEGORY_ID, C.ID, C.CATEGORY FROM ARTICLES A INNER JOIN ARTICLE_CATEGORY C ON A.CATEGORY_ID=C.ID ORDER BY C.CATEGORY, A.ID DESC");
$stmt->execute();
if ($stmt->bind_result($ID, $HEADER, $CONTENT, $PICTURE, $CATEGORY))
{
  ...
  ...

  while($stmt->fetch()) 
  {
    ...
    ...
    ...
  }
}
?>

注意:来自asp.net我在mysqli非常棒,但我很确定我没有使用OO方法。

我在另一个略有不同的案例中找到答案: Problem with mysqli fetch

但是这个答案需要$ stmt-&gt; store_result()和嵌套的$ stmt单位,我只需要清除它们,这样prepare()可以有工作空间。

原来答案是我错过了$ stmt-&gt; free_result();和$ stmt-&gt; close();另外,对于一页上的3个循环,$ stmt变量名称需要保持不同,例如:$ stmt1,$ stmt2,$ stmt3

0 个答案:

没有答案