Reputation: 293
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.
Upvotes: 3
Views: 26314
Reputation: 311
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.
Upvotes: -1
Reputation: 673
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.
Upvotes: 1
Reputation: 12665
$stmt
is probably false
.
if ($stmt = $mysqli->prepare(...)) {
$stmt->bind_param(...);
...
}
else {
printf("Errormessage: %s\n", $mysqli->error);
}
Upvotes: 14