Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Simple Insert funciona com phpmyadmin mas não com php


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) :