Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einfaches Einfügen funktioniert mit phpmyadmin, aber nicht mit php

Nur um sicherzugehen:Wenn Sie versuchen, diese 4 Abfragen von PHP auszuführen, rufen Sie mysql_query auf viermal ?

Zum Beispiel:

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


Was ich meine ist:Sie können nicht mehrere unterschiedliche Abfragen gleichzeitig senden, mit nur einem Aufruf von mysql_query (Zitat, Hervorhebung von mir) :

Sie müssen Ihre Abfragen „trennen“ – was phpMyAdmin wahrscheinlich tut, ohne es Ihnen zu sagen.

Und wie @Alexandre darauf hinwies in den Kommentaren :


Wenn Sie mysqli_* verwenden Funktionen (und nicht mysql_* ), um auf Ihre Datenbank zuzugreifen, können Sie versuchen, mysqli_multi_query .

Leider gibt es eine solche Funktion für mysql_* .

(Übrigens:die mysql_* API ist die alte -- es wäre besser, besonders für ein neues Projekt, mysqli_* zu verwenden )


Nach dem Kommentar bearbeiten :

Wenn es um Leistung geht, ja, einen einzigen Aufruf an die Datenbank machen, statt vier aufeinanderfolgende PHP <-> MySQL Anrufe, könnte besser sein.

In diesem Fall könnten Sie versuchen, die Einfüge-Syntax zu verwenden, die es ermöglicht, mehrere Zeilen auf einmal einzufügen; siehe 12.2.5. INSERT-Syntax im MySQL-Handbuch (Zitat) :