我用准备好的语句编辑了我的代码(之前我没有使用过它们)。我收到一个错误 "在非对象"上调用成员函数bind_param()。我搜索了该错误,我发现原因 - 如果查询有语法错误,则会导致错误。我在查询中查看了最后10分钟,但我找不到语法错误。有人能帮助我吗?谢谢!
// QUERY BEFORE
$_hsync_statment->bind_param("sisssss", $_hsync_ime, $_hsync_id, $_hsync_nista, $_hsync_nista, $_hsync_mail, $_hsync_datum, $_hsync_vrijeme);
if(!$_hsync_statment->execute()) $_hsync_reg_status = -1;
// POVEČAVA BROJ REGISTRIRANIH RAČUNA
$_hsync_statment = $_hsync_konekcija->prepare("UPDATE $_hsync_srv SET Clanova = ?");
$_hsync_statment->bind_param("i", $_hsync_id + 1); // THIS LINE
if(!$_hsync_statment->execute()) $_hsync_reg_status = -1;
我试图在执行后关闭每个法规。这没有用。
答案 0 :(得分:5)
那么
出了什么问题$_hsync_statment->bind_param("i", $_hsync_id + 1); // THIS LINE
$ _hsync_id是一个包含int的变量。当你向int添加1时。它产生一个bind_param不能接受的int。 bind_param需要一个对象。试试这个:
$_hsplus = $_hsync_id + 1;
$_hsync_statment->bind_param("i", $_hsplus); // THIS LINE
所以现在为什么当manual clealy说:
时,我得到两个downvotes请注意,mysqli_stmt_bind_param()需要传递参数 参考,而
答案 1 :(得分:2)
错误消息在非对象上调用成员函数bind_param()意味着在调用bind_params()之前没有正确实例化对象$ _hsync_statment。 已经启动了与$ _hsync_statment的数据库连接 $ _hsync_statment = $ db-> stmt_init();