"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les instructions préparées MySQLi peuvent-elles gérer plusieurs requêtes ?

Les instructions préparées MySQLi peuvent-elles gérer plusieurs requêtes ?

Publié le 2024-12-15
Parcourir:277

Can MySQLi Prepared Statements Handle Multiple Queries?

Préparation de requêtes mysqli avec plusieurs requêtes

La préparation multi-requêtes n'est pas prise en charge par la fonctionnalité d'instructions préparées de mysqli. Une instruction préparée dans mysqli est limitée à l'exécution d'une seule requête MySQL.

Approche alternative :

Si vous devez exécuter plusieurs requêtes en séquence, vous pouvez créer des requêtes préparées distinctes. instructions pour chaque requête :

$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?)");

Approche basée sur les transactions :

Alternativement, vous pouvez utiliser des transactions pour vous assurer que les deux requêtes sont exécutées ou qu'aucune des deux n'est exécutée :

$sql->begin_transaction();

// Execute both queries

if (!$stmtUser->execute() || !$stmtProc->execute()) {
    $sql->rollback();
} else {
    $sql->commit();
}

Erreur de débogage :

Si vous rencontrez une erreur "appel à une fonction membre sur un non-objet", cela indique que la préparation de l'instruction a échoué. Vérifiez attentivement votre instruction prepare() pour détecter toute erreur.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3