Juste pour être sûr :lorsque vous essayez d'exécuter ces 4 requêtes depuis PHP, vous appelez mysql_query
quatre fois ?
Par exemple :
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,1,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,2,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,3,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,4,1)");
Ce que je veux dire c'est :vous ne pouvez pas envoyer plusieurs requêtes distinctes à la fois, avec un seul appel à mysql_query
(citant, c'est moi qui souligne) :
Vous devez "séparer" vos requêtes -- ce que phpMyAdmin fait probablement sans vous le dire.
Et, comme @Alexandre l'a souligné dans les commentaires :
Si vous utilisez le mysqli_*
fonctions (et non mysql_*
) pour accéder à votre base de données, vous pouvez essayer d'utiliser mysqli_multi_query
.
Malheureusement, il existe une telle fonction pour mysql_*
.
(BTW :le mysql_*
L'API est l'ancienne -- il serait préférable, surtout pour un nouveau projet, d'utiliser mysqli_*
)
Modifier après le commentaire :
Si c'est une question de performances, oui, faire un seul appel à la base de données, au lieu de quatre PHP <-> MySQL
successifs appels, ça pourrait être mieux.
Dans ce cas, vous pouvez essayer d'utiliser la syntaxe insert qui permet d'insérer plusieurs lignes à la fois; voir 12.2.5. Syntaxe INSÉRER dans le manuel de MySQL (citant) :