Mysql
 sql >> Base de données >  >> RDS >> Mysql

Plusieurs instructions préparées MYSQLi

votre code est bon mais vous ne devriez pas les nommer du même nom $stmt

la première instruction est $stmt

puis donnez à la deuxième déclaration un autre nom comme $stmt2 . ou quel que soit le nom que vous aimez.

exemple :

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

et pour déboguer votre code et voir où est l'erreur, utilisez ceci.

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);}