sql >> Databáze >  >> RDS >> Mysql

Simple Insert funguje s phpmyadmin, ale ne s php

Jen pro jistotu:když se pokoušíte provést tyto 4 dotazy z PHP, voláte mysql_query čtyřikrát?

Například:

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


Mám na mysli:nemůžete odeslat několik různých dotazů najednou, pouze jedním voláním mysql_query (cituji, zdůrazňuji můj) :

Musíte "oddělit" své dotazy - což je pravděpodobně něco, co phpMyAdmin dělá, aniž by vám to řekl.

A jak zdůraznil @Alexandre v komentářích :


Pokud používáte mysqli_* funkcí (a nikoli mysql_* ) pro přístup k databázi můžete zkusit použít mysqli_multi_query .

Bohužel existuje taková funkce pro mysql_* .

(BTW:mysql_* API je staré – bylo by lepší, zvláště pro nový projekt, použít mysqli_* )


Upravit po komentáři:

Pokud jde o výkon, ano, provedení jediného volání databáze namísto čtyř po sobě jdoucích PHP <-> MySQL hovory, mohlo by to být lepší.

V tomto případě můžete zkusit použít syntaxi insert, která umožňuje vložit několik řádků najednou; viz 12.2.5. INSERT Syntaxe v příručce MySQL (cituji) :



  1. Dynamické tabulky a modely v Laravel 5

  2. Šipka notace

  3. MYSQL dotaz pro výběr výsledku podmínky jedné tabulky a jeho zobrazení v jiné tabulce

  4. Problém:Získávání různých výsledků z dotazů SUM