Php 对非对象调用成员函数bind_param()(无法解决)
上面的代码给了我一个“对非对象的成员函数bind_param()的调用”错误。 我真的不明白为什么我会犯这个错误。我有正确的名字 我是mysqli新手,希望了解如何调试此类错误Php 对非对象调用成员函数bind_param()(无法解决),php,mysqli,Php,Mysqli,上面的代码给了我一个“对非对象的成员函数bind_param()的调用”错误。 我真的不明白为什么我会犯这个错误。我有正确的名字 我是mysqli新手,希望了解如何调试此类错误 我的prepare语句或bind_param()有什么问题 请教我如何调试这种错误 mysqli\u prepare() $mysqli->prepare()可能返回FALSE。编写一个条件来处理这种情况。调用非对象上的成员函数bind_param()意味着您试图调用的$stmt不是对象。为什么它不是一个物体?因为$m
mysqli\u prepare()
$mysqli->prepare()
可能返回FALSE
。编写一个条件来处理这种情况。调用非对象上的成员函数bind_param()
意味着您试图调用的$stmt
不是对象。为什么它不是一个物体?因为$mysqli->prepare
没有返回对象。为什么它不返回一个对象
mysqli\u prepare()
这意味着一定发生了错误。你应该打开,这可能会告诉你,或检查,这可能会告诉你
$stmt = $mysqli->prepare('select Un from member where Lock = ? and Activated = ?');
$stmt -> bind_param("ss", 'N', 'Y');//This line gave the error
$stmt -> execute();
$stmt->store_result();//apply to prepare statement
$numRows = $stmt->num_rows;
if ($numRows > 0)//if have result
while ($row = $stmt->fetch())
在这里,您需要确定数据库中的数据类型。Error打开后,它会说“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在“Lock=”和“Activated=”附近使用的正确语法。”我仍然不明白为什么我的SQL是错误的。@JerryLock
是一个错误。将字段名放在反勾中以避免这种歧义:WHERE`Lock`=…
Thank=D,但现在有另一个问题“无法通过引用传递参数2”。据我所知,它指的是“Y”?我现在做错了什么?@Jerry参数必须是变量,而不仅仅是文本。如果只是不变的静态文本,您不需要首先绑定这些值,您可以按原样将它们写入查询。bind_param()
需要通过引用传递变量。不能通过引用传递字符串文本。
$stmt->bind_param("ss", 'N', 'Y');//This line gave the error