I am just learning how to use MYSQLi prepared statements so please go easy on me. I can get these to work individually but when I put them together they don't work.
$con = my connection details.
This is my code for the queries:
// Insert the review into DB
$stmt = $con->prepare("INSERT INTO reviews (order_id, comment) VALUES (?, ?)");
$stmt->bind_param('is', $order_id, $comment);
$stmt->execute();
$stmt->close();
// Update transactions to show review added
$stmt = $con->prepare("UPDATE transactions SET review = ? WHERE order_id = ?");
$stmt->bind_param('ii', 1, $order_id);
$stmt->execute();
$stmt->close();
Thanks in advance for your help! Much appreciated.
your code is good however you should dont name them the same name $stmt
the first statment is $stmt
then give second statment other name like $stmt2
. or what ever name you like.
example:
$stmt = $con->prepare("INSERT INTO reviews (order_id, comment) VALUES (?, ?)");
$stmt->bind_param('is', $order_id, $comment);
$stmt->execute();
$stmt->close();
// Update transactions to show review added
$stmt2 = $con->prepare("UPDATE transactions SET review = ? WHERE order_id = ?");
$stmt2->bind_param('ii', 1, $order_id);
$stmt2->execute();
$stmt2->close();
and to debug your code and see where is the error use this.
if ($stmt = $con->prepare("INSERT INTO reviews (order_id, comment) VALUES (?, ?)") ){
$stmt->bind_param('is', $order_id, $comment);
$stmt->execute();
$stmt->close();
}
else {printf("Error message:: %s\n", $con->error);}
You can use $stmt2, but if you are already closing $stmt there is no need to use $stmt2. Once you have closed $stmt you are free to use it again