Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment exécuter plusieurs requêtes mysql ensemble en PHP ?

mysql_query() envoie une requête unique (les requêtes multiples ne sont pas prises en charge) .C'est le comportement par défaut. Cependant, il existe un contournement pour cela.

Cependant le code résultat de la première requête seul sera donné en sortie de mysql_query() si vous le faites.

Il vous suffit de passer le flag 65536 comme 5ème paramètre de mysql_connect. le drapeau est défini dans Drapeaux du client MySQL .

#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */

Alors éditez votre mysql_connect() code correspondant à ceci :

mysql_connect($host, $username, $password, false, 65536);

Avertissement :

  1. Vous obtiendrez le résultat de mysql_query($query) pour la première requête uniquement dans la $query donnée . Vous pouvez essayer de concaténer 131072 avec 65536 pour obtenir plusieurs résultats.
  2. Cela ne fonctionnera pas sur PHP <4.3.0
  3. Cela ne fonctionnera pas si sql.safe_mode est défini sur 1 dans php.ini

Une autre alternative sera d'utiliser mysqli au lieu de mysql bibliothèque. Il supporte $mysqli->multi_query() et donne une sortie dans un tableau pour chaque requête.