Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je exécuter plusieurs requêtes SQL dans une seule instruction à l'aide de PHP ?

Patricia Arquette
Libérer: 2024-11-19 16:19:03
original
299 Les gens l'ont consulté

How Can I Execute Multiple SQL Queries in a Single Statement Using PHP?

Exécuter plusieurs requêtes SQL dans une seule instruction avec PHP

Dans cette énigme de programmation, l'utilisateur recherche une méthode pour combiner plusieurs requêtes SQL en une une seule déclaration. Ils ont fourni un exemple de code composé de trois requêtes distinctes :

DELETE FROM aktywne_kody WHERE kodsms ='$kodSMSgracza' AND typkodu ='$id';
mysql_query($query) or die(mysql_error());

INSERT INTO uzyte_kody (gracz, kodsms, typkodu) VALUES ('$nickGracza', '$kodSMSgracza', '$id');
mysql_query($query) or die("Błąd MySQL X04");

INSERT INTO do_odebrania (gracz, itemDATA, itemQTY) VALUES ('$nickGracza', '$itemDATA', '$itemQTY');
mysql_query($query) or die("Błąd MySQL X05");
Copier après la connexion

Solution

Pour exécuter plusieurs requêtes SQL dans une seule instruction à l'aide de PHP et MySQL, la clé est passer 65536 comme cinquième paramètre lors de l'initialisation de mysql_connect. Voici un exemple :

$conn = mysql_connect('localhost','username','password', true, 65536 /* here! */) or die("cannot connect");
mysql_select_db('database_name') or die("cannot use database");

mysql_query("
    INSERT INTO table1 (field1,field2) VALUES(1,2);

    INSERT INTO table2 (field3,field4,field5) VALUES(3,4,5);

    DELETE FROM table3 WHERE field6 = 6;

    UPDATE table4 SET field7 = 7 WHERE field8 = 8;

    INSERT INTO table5
       SELECT t6.field11, t6.field12, t7.field13
       FROM table6 t6
       INNER JOIN table7 t7 ON t7.field9 = t6.field10;

    -- etc
");
Copier après la connexion

Dans cet exemple, toutes les requêtes seront exécutées séquentiellement dans le cadre d'une seule instruction. Il est important de noter que les commandes suivantes telles que mysql_fetch_*, mysql_num_rows et mysql_affected_rows ne seront valides que pour la première requête exécutée.

Question mysql_close

Concernant la question sur En fermant la connexion à la base de données, il est généralement recommandé d'appeler mysql_close($db) après avoir terminé toutes les requêtes SQL pour libérer la connexion et libérer des ressources.

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!

source:php.cn
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