我在php中学习MySQLi,我无法理解为什么我会在非对象错误上调用成员函数prepare()。
这是我的代码如下:
public function fetch_posts($num = 5)
{
global $mysqli;
if($stmt = $mysqli->prepare("SELECT * FROM posts ORDER BY id desc LIMIT ?"))
{
/* Bind parameters
s - string, b - boolean, i - int, etc */
$stmt -> bind_param("i", $num);
/* Execute it */
$stmt -> execute();
/* Bind results */
$stmt -> bind_result($result);
/* Fetch the value */
$stmt -> fetch();
/* Close statement */
$stmt -> close();
}
$mysqli -> close();
}
$mysqli
是MySQLi连接调用$mysqli = new mysqli(DB_HOST, DB_ID, DB_PW, DB);
,它位于__construct()
函数中,两者都在同一个类中。
我在这里做过一些明显错误的事吗?我看不到它。
答案 0 :(得分:0)
$mysqli
不是MySQL连接。
如果您没有配置调试器以便逐步完成代码,请在gettype($mysqli)
电话之前使用prepare()
查看您正在处理的内容。