sql >> Base de Datos >  >> RDS >> Mysql

Simple Insert funciona con phpmyadmin pero no con php

Solo para estar seguro:cuando intenta ejecutar estas 4 consultas desde PHP, está llamando a mysql_query cuatro veces ?

Por ejemplo:

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)");


Lo que quiero decir es que no puede enviar varias consultas distintas a la vez, con solo una llamada a mysql_query (citando, énfasis mío) :

Tienes que "separar" tus consultas, lo que probablemente sea algo que phpMyAdmin hace sin decírtelo.

Y, como señaló @Alexandre en los comentarios:


Si está utilizando mysqli_* funciones (y no mysql_* ) para acceder a su base de datos, puede intentar usar mysqli_multi_query .

Desafortunadamente, existe tal función para mysql_* .

(Por cierto:el mysql_* La API es la anterior:sería mejor, especialmente para un nuevo proyecto, usar mysqli_* )


Editar después del comentario:

Si se trata de actuaciones, sí, haciendo una única llamada a la base de datos, en lugar de cuatro PHP <-> MySQL sucesivas llamadas, podría ser mejor.

En este caso, podría intentar usar la sintaxis de inserción que permite insertar varias líneas a la vez; consulte 12.2.5. INSERTAR Sintaxis en el manual de MySQL (citando) :