Call to a member function bind_param() on a non-ob

2019-01-09 18:04发布

Okay, so I'm trying to update a blog entry, and I'm getting Call to a member function bind_param() on a non-object when I try to run the script. I have done extensive research to see if I could fix it myself, but I must be missing something.

<?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();

?>

Thanks in advance,

Austen

Update: Here's the db connect

I added the extra $mysqli connection for debugging purposes, and the error occurs even without it.

标签: php mysqli
3条回答
我欲成王,谁敢阻挡
2楼-- · 2019-01-09 18:52

I solved that by testing the queries manually. It turned out to be a matter of putting each field name between back ticks and removing any quotes against the parameters labeled with question marks inside the query.

查看更多
相关推荐>>
3楼-- · 2019-01-09 18:54

If all the connections to the database are correct, try looking for the syntax in the query. For me, I was performing a join and did not specify the "TABLENAME" in the where clause-field for which both the tables have a column.

查看更多
家丑人穷心不美
4楼-- · 2019-01-09 18:57

$stmt is probably false.

if ($stmt = $mysqli->prepare(...)) {
    $stmt->bind_param(...);
    ...
}
else {
    printf("Errormessage: %s\n", $mysqli->error);
}
查看更多
登录 后发表回答