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

Plusieurs requêtes SQL peuvent-elles être exécutées dans une seule instruction PHP ?

Linda Hamilton
Libérer: 2024-11-24 06:41:10
original
172 Les gens l'ont consulté

Can Multiple SQL Queries Be Executed in a Single PHP Statement?

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

Question :

Peut-on plusieurs Les requêtes SQL doivent être consolidées en une seule instruction dans PHP ?

Contexte :

La question concerne un scénario dans lequel plusieurs requêtes SQL sont exécutées séparément :

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

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

$query = "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

Réponse :

Oui, il est possible d'exécuter plusieurs requêtes SQL dans une seule instruction en PHP en utilisant un paramètre spécifique pour mysql_connect().

Passez 65536 comme cinquième paramètre à mysql_connect() :

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

Une fois ce paramètre défini, plusieurs requêtes SQL peuvent être exécutées dans une seule instruction :

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

Il est important de noter que lorsque vous travaillez avec des fonctions comme mysql_fetch_* ou mysql_num_rows, ou mysql_affected_rows, seule la première instruction des multiples requêtes sera traitée. Des fonctions comme mysql_affected_rows peuvent être utilisées pour récupérer le nombre de lignes insérées ou affectées par la première requête. Cependant, des fonctions comme mysql_fetch_* renverront des valeurs uniquement pour la première requête et non pour les requêtes suivantes dans l'instruction.

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