调用一个成员函数bind_param()一个非对象库MySQLi调用一个成员函数bind_param

2019-05-12 09:38发布

好了,所以我想更新博客条目,我得到调用一个成员函数bind_param()非对象上,当我尝试运行该脚本。 我已经做了广泛的研究,看看我是否可以修复它自己,但我必须失去了一些东西。

<?php
$stmt = $mysqli->prepare("UPDATE blogentries SET 
  headline = ?, 
   image = ?, 
   caption = ?,  
   article = ?
    WHERE id = ?");
$stmt->bind_param('ssssi',
   $_POST['headline'],
   $_POST['image'],
   $_POST['caption'],
   $_POST['article'],
   $_POST['id']);
$stmt->execute(); 
$stmt->close();

?>

提前致谢,

奥斯丁

更新:这里的数据库连接

我加了用于调试额外的$ mysqli的连接,并出现错误,即使没有它。

Answer 1:

$stmt可能是false

if ($stmt = $mysqli->prepare(...)) {
    $stmt->bind_param(...);
    ...
}
else {
    printf("Errormessage: %s\n", $mysqli->error);
}


Answer 2:

我解决了通过手动测试查询。 它原来是把反引号之间的每个字段名称,并取消对标有查询中问号参数报价的任何一个问题。



Answer 3:

如果所有到数据库的连接是否正确,尝试寻找在查询语法。 对于我来说,我是执行联接,并没有指定where子句场为这两个表有一个列“TABLENAME”。



文章来源: Call to a member function bind_param() on a non-object MySQLi
标签: php mysqli