Depuis la version 4.1, MySQL supporte l'exécution de requêtes
multiples dans une seule commande. Pour cela, vous devez activer
l'option client CLIENT_MULTI_QUERIES
lors de
l'ouverture de la connexion.
Par défaut, mysql_query()
ou
mysql_real_query()
ne retournent que le
statut de la première requête, et les statuts suivants peut
être obtenu avec mysql_more_results()
et
mysql_next_result()
.
/* Connexion au serveur, avec l'option CLIENT_MULTI_QUERIES */ mysql_real_query(..., CLIENT_MULTI_QUERIES); /* Exécution de plusieurs requêtes */ mysql_query(mysql,"DROP TABLE IF EXISTS test_table;\ CREATE TABLE test_table(id int);\ INSERT INTO test_table VALUES(10);\ UPDATE test_table SET id=20 WHERE id=10;\ SELECT * FROM test_table;\ DROP TABLE test_table"; while (mysql_more_results(mysql)) { /* Traitement de tous les résultats */ mysql_next_result(mysql); ... printf("total affected rows: %lld", mysql_affected_rows(mysql)); ... if ((result= mysql_store_result(mysql)) { /* Retourne un résultat, le traite */ } }
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.