Dla pewności:kiedy próbujesz wykonać te 4 zapytania z PHP, wywołujesz mysql_query
cztery razy?
Na przykład :
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)");
Mam na myśli to, że:nie można wysłać kilku odrębnych zapytań naraz, tylko jedno wywołanie mysql_query
(cytat, podkreślenie moje) :
Musisz "oddzielić" swoje zapytania - co prawdopodobnie jest czymś, co phpMyAdmin robi bez informowania cię.
I, jak zauważył @Alexandre w komentarzach :
Jeśli używasz mysqli_*
funkcje (a nie mysql_*
), aby uzyskać dostęp do bazy danych, możesz spróbować użyć mysqli_multi_query
.
Niestety istnieje taka funkcja dla mysql_*
.
(BTW:mysql_*
API jest stare - lepiej, zwłaszcza dla nowego projektu, użyć mysqli_*
)
Edytuj po komentarzu:
Jeśli chodzi o wydajność, tak, wykonanie pojedynczego wywołania do bazy danych, zamiast czterech kolejnych PHP <-> MySQL
połączeń, mogłoby być lepiej.
W takim przypadku możesz spróbować użyć składni insert, która pozwala wstawić kilka wierszy naraz; zobacz 12.2.5. WSTAW składnię w podręczniku MySQL (cytuję) :