PHP Concatener des requetes sql avant d'execu

Fermé
goldo Messages postés 72 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 juin 2010 - 28 juin 2010 à 15:31
goldo Messages postés 72 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 juin 2010 - 28 juin 2010 à 15:50
Bonjour,

Travaillant avec une base de donnée qui brassent énormément de lignes ( tables des produits : 15000 enregistrements ^^
J'ai souvent besoin dans un script php d'effectuer des requete update pour chaque ligne par exemple.
Dans un script ou je modifie 8000 lignes par exemple j'appele la fonction mysql_query($sql)
8000 fois. Ce qui est assez lourd.

J'ai donc pensé à concaténer toutes les requetes et appeler mysql_query une seule fois.
req1; req2; req3; .... ==> tout sa dans une variable et dès que j'ai fini de concaténer j'exécute.

J'ai pensé à sa car dans l'interface phpMyadmin directement on a la possibilité d'ecrire plusieurs requetes à la suite, alors je me suis dit que surement il était possible de le faire en php mais cela ne fonctionne pas.

La question est la suivante :
Dois je continuer a executer dans mes script php un nombre de fois incalculable mysql_query ou peut-on optimiser ?






--
A voir également:

1 réponse

avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
28 juin 2010 à 15:44
Salut.
Si tu sépares tes requêtes par un ";", tu peux utiliser la fonction explode() pour récupérer chaque requête et les exécuter une par une :
$requetes = explode(';',$sql);
foreach($requetes as $requete) {
    mysql_query($requete);
}
Sinon c'est directement faisable avec MySQLi.
0
goldo Messages postés 72 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 juin 2010 8
28 juin 2010 à 15:50
Ok merci pour l'astuce.

Je connaissais pas mysqli et j'ai trouvé ceci qui pourrait m'aider -> mysqli_multi_query

Merci.
0