Maison > base de données > tutoriel mysql > MySQLi peut-il préparer plusieurs requêtes dans une seule instruction ?

MySQLi peut-il préparer plusieurs requêtes dans une seule instruction ?

Barbara Streisand
Libérer: 2024-10-29 02:41:30
original
463 Les gens l'ont consulté

Can MySQLi Prepare Multiple Queries in a Single Statement?

MySQLI peut-il préparer plusieurs requêtes dans une seule instruction ?

Bien qu'il ne soit pas possible de préparer plusieurs requêtes avec une seule instruction MySQLi, des solutions de contournement existent pour obtenir une fonctionnalité similaire.

Préparation multi-instructions

Les tentatives de préparation de plusieurs requêtes dans une seule instruction MySQLi entraîneront une erreur. Alternativement, vous pouvez créer plusieurs instructions préparées :

<code class="php">$stmt = $mysqli->prepare("SELECT * FROM users");
$stmt2 = $mysqli->prepare("INSERT INTO orders (user_id) VALUES (?)");</code>
Copier après la connexion

Combiner des instructions préparées

Pour exécuter plusieurs requêtes de manière contrôlée, vous pouvez combiner les instructions préparées à l'aide d'un transaction :

<code class="php">mysqli->begin_transaction();
$stmt->execute();
$stmt2->execute();
mysqli->commit(); // Execute transaction</code>
Copier après la connexion

Cela garantit que les deux requêtes sont exécutées avec succès ou pas du tout.

Gestion des erreurs

Si l'une des instructions préparées échoue pendant l'exécution, la transaction sera annulée et aucune modification ne sera apportée. Il est essentiel de vérifier les erreurs après l'exécution d'une instruction préparée :

<code class="php">if ($stmt->errno != 0) {
    echo "Error: " . $stmt->error;
}</code>
Copier après la connexion

Conseil supplémentaire

L'erreur "appel à une fonction membre sur un non-objet" est généralement se produit lorsque la méthode prepare() échoue. Assurez-vous que votre chaîne de requête est syntaxiquement correcte avant de continuer.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal