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");
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");
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 ");
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!