Maison >développement back-end >tutoriel php >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 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-25 06:07:12886parcourir

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 déclarations 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 (?,?)");

Basé sur les transactions Approche :

Vous pouvez également 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn