函数bind_param()在非对象上PHP MySQL

时间:2016-05-01 13:02:57

标签: php mysql

我用准备好的语句编辑了我的代码(之前我没有使用过它们)。我收到一个错误 "在非对象"上调用成员函数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;

我试图在执行后关闭每个法规。这没有用。

2 个答案:

答案 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();