Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno MySQL 4 - viac príkazov naraz

Chcem vytvoriť tabuľku a vložiť 10 záznamov. Problém je v tom, že ak použijem funkciu mysql_query(), tak sa mi nevykoná, ak v nej mám viac ako jeden príkaz (v mojom prípade je to create a 10x insert). Viete mi poradiť ako to vykonať naraz? Verzia MySQL je 4.

Předmět Autor Datum
Keď sa pozrieš do dokumentácie pre mysql_query, tak sa dozvieš, že nepodporuje vykonanie viacerých p…
los 07.05.2008 14:25
los
Hlavná vec, že všade čítam o SQL injection pomocou dvoch príkazov SQL. Ale dobre, ďakujem. Urobil so…
msx. 07.05.2008 14:55
msx.
a což takhle 11x zavolat fci mysql_query :-) nebo přes phpmyadmin - tam se tuším dá napsat do pole v…
ivitek 07.05.2008 14:27
ivitek
To je tiež riešenie, lenže chcem, aby ten programový kód aj nejako vyzeral.
msx. 07.05.2008 14:49
msx.
No ježiši, takto by měl výsledný kód 1MB místo 100kb, k takovým lidem mám svůj postoj, nehledě na to…
marekdrtic 07.05.2008 16:09
marekdrtic
Vo veľkosti výsledného kódu by nebol taký dramatický rozdiel (bolo by to odhadom niekoľko desiatok b… poslední
los 07.05.2008 16:31
los

Keď sa pozrieš do dokumentácie pre mysql_query, tak sa dozvieš, že nepodporuje vykonanie viacerých príkazov:

mysql_query() sends an unique query (multiple queries are not supported)...

Keď sa pozrieš do dokumentácie pre INSERT, tak sa dozvieš, že viacero riadkov môžeš vložiť pomocou jedného príkazu:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

Vo veľkosti výsledného kódu by nebol taký dramatický rozdiel (bolo by to odhadom niekoľko desiatok bajtov). Okrem toho by to bol jediný možný spôsob v prípade, že by MySQL nepodporovalo túto konštrukciu (ktorá nie je súčasťou štandardu SQL92).

Čo sa týka záťaže databázy: desať jednoduchých príkazov, ktoré sa pravdepodobne nevykonávajú nejako často, je vo všeobecnosti nič a ťažko sa dá rozmýšľať nad nejakou optimalizáciou výkonnosti, ak nepoznáme v podstate žiadne detaily o aplikácii a ani o prostredí, v ktorom beží.

Zpět do poradny Odpovědět na původní otázku Nahoru