Mysql
 sql >> Database >  >> RDS >> Mysql

Simple Insert funziona con phpmyadmin ma non con php

Giusto per essere sicuro:quando stai cercando di eseguire queste 4 query da PHP, stai chiamando mysql_query quattro volte?

Ad esempio :

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


Intendo:non puoi inviare più query distinte contemporaneamente, con una sola chiamata a mysql_query (citando, enfasi mia) :

Devi "separare" le tue query -- che probabilmente è qualcosa che phpMyAdmin fa senza dirtelo.

E, come @Alexandre ha sottolineato nei commenti :


Se stai utilizzando mysqli_* funzioni (e non mysql_* ) per accedere al tuo database, puoi provare a utilizzare mysqli_multi_query .

Sfortunatamente, esiste una tale funzione per mysql_* .

(A proposito:il mysql_* L'API è quella vecchia -- sarebbe meglio, soprattutto per un nuovo progetto, usare mysqli_* )


Modifica dopo il commento :

Se si tratta di prestazioni, sì, fare una singola chiamata al database, invece di quattro PHP <-> MySQL successivi chiamate, potrebbe essere migliore.

In questo caso, potresti provare ad usare la sintassi di inserimento che permette di inserire più righe contemporaneamente; vedere 12.2.5. INSERT Sintassi nel manuale di MySQL (citando) :