Bare for at være sikker:når du forsøger at udføre disse 4 forespørgsler fra PHP, kalder du mysql_query
fire gange?
For eksempel :
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)");
Det jeg mener er:du kan ikke sende flere forskellige forespørgsler på én gang med kun ét opkald til mysql_query
(citerer, fremhæver mine) :
Du skal "adskille" dine forespørgsler -- hvilket sandsynligvis er noget phpMyAdmin gør uden at fortælle dig det.
Og som @Alexandre påpegede i kommentarerne:
Hvis du bruger mysqli_*
funktioner (og ikke mysql_*
) for at få adgang til din database, kan du prøve at bruge mysqli_multi_query
.
Desværre er der en sådan funktion for mysql_*
.
(BTW:mysql_*
API er den gamle -- det ville være bedre, især for et nyt projekt, at bruge mysqli_*
)
Rediger efter kommentaren:
Hvis det handler om præstationer, ja, at foretage et enkelt opkald til databasen i stedet for fire på hinanden følgende PHP <-> MySQL
opkald, kunne være bedre.
I dette tilfælde kan du prøve at bruge insert-syntaksen, der gør det muligt at indsætte flere linjer på én gang; se 12.2.5. INDSÆT syntaks i MySQL's manual (citering) :