Só para ter certeza:quando você está tentando executar essas 4 consultas do PHP, você está chamando
mysql_query
quatro vezes ? Por exemplo :
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)");
O que quero dizer é:você não pode enviar várias consultas distintas de uma só vez, com apenas uma chamada para
mysql_query
(citação, ênfase minha) :Você tem que "separar" suas consultas - o que provavelmente é algo que o phpMyAdmin faz sem lhe dizer.
E, como @Alexandre apontou nos comentários:
Se você estiver usando o
mysqli_*
funções (e não mysql_*
) para acessar seu banco de dados, você pode tentar usar mysqli_multi_query
. Infelizmente, existe tal função para
mysql_*
. (BTW:o
mysql_*
API é a antiga -- seria melhor, especialmente para um novo projeto, usar mysqli_*
) Editar após o comentário:
Se for sobre performances, sim, fazer uma única chamada para o banco de dados, em vez de quatro sucessivas
PHP <-> MySQL
chamadas, poderia ser melhor. Neste caso, você pode tentar usar a sintaxe de inserção que permite inserir várias linhas de uma vez; consulte 12.2.5. Sintaxe de INSERIR no manual do MySQL (citando) :