Mysql/php - mysql_query() - viac dotazov – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Mysql/php - mysql_query() - viac dotazov – MySQL – Fórum – Programujte.comMysql/php - mysql_query() - viac dotazov – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
olgo0
Věrný člen
19. 2. 2007   #1
-
0
-

zdravim. je mozne pomocov php funkcie mysql_query() poslat viac dotazov? ked som skusal

mysql_query('dotaz_1; dotaz_2;');
mysql_error() vyplulo hlasku o sintaxalnej chybe na '; dotaz_2'. pricom v konzole to normalne funguje. je to teda mozne (a je mozne tym usetrit nejaky cas v porovnani zo zasielanim dotazov jednotlivo)? diky vam.

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Reklama
Reklama
Radoslav Pala0
Super člen
19. 2. 2007   #2
-
0
-

v MySQLi sa to dá pomocou mysqli_multi_query.

Nahlásit jako SPAM
IP: ...–
Rady Pala - www.radypala.sk ,tvorca MojaTrieda - http://mojatrieda.radypala.sk, elan.radypala.sk
olgo0
Věrný člen
19. 2. 2007   #3
-
0
-

To radypala: z mysqli som tu cest este nemal. je to v mojom pripade pouzitelne?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Radoslav Pala0
Super člen
19. 2. 2007   #4
-
0
-

skus pozriet manual. upozornujem, ze MySQLi je rozsirenie PHP5. musis vytvorit nove spojenie mysqli. V manuali je nejaky priklad:



<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->close();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Nahlásit jako SPAM
IP: ...–
Rady Pala - www.radypala.sk ,tvorca MojaTrieda - http://mojatrieda.radypala.sk, elan.radypala.sk
olgo0
Věrný člen
19. 2. 2007   #5
-
0
-

To radypala: dik. budem muset zapracovat na objektoch. snad to k necomu bude. a ked som to spravne pochopil tak je mozne ze je to na serveri zakazane respektive neni to povolene?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
19. 2. 2007   #6
-
0
-

Celkem urcite muzes pouzit transakcni zpracovani, to ma podobny efekt

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
olgo0
Věrný člen
19. 2. 2007   #7
-
0
-

To CommanderZ: neviem ci sme sa navzajom pochopili. ako som napisal v prvom prispevku ide mi iba o cas. alebo je snad mozne pomocov mysql_query a transakcneho spracovania poslat viac dotazov naraz?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
25. 2. 2007   #8
-
0
-

Ono funguje tak, ze se vsechny dotazy odeslou az ve chvili kdyz reknes COMMIT, jak je na tom s rychlosti, to nevim. Muzes zkusit udelat benchmark (nejdriv treba 1000* dvoje mysql_query a pote 1000* s tim transakcnim zpracovanim)

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
olgo0
Věrný člen
25. 2. 2007   #9
-
0
-

To CommanderZ: skusim to a dam vedet (hnet jak sa mi podary rozbrhnut db na pos... hostuju.cz)

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
olgo0
Věrný člen
1. 3. 2007   #10
-
0
-

To CommanderZ: no nepodarilo sa mi presvedcit mysql aby vykonal BEGIN; query1; query2; COMMIT; vyzera ze ma alergia na ";" pise za mam sintax error na "; query1; query2; COMMIT;". fakt to takto funguje alebo si iba strielal naslepo?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Ondrej Juríček
~ Moderátor
0
Stálý člen
1. 3. 2007   #11
-
0
-

Cez mysql_query() môžeš poslať iba jeden dotaz!! Ak chceš použiť transakciu, tak v tvojom prípade musíš poslať 4 dotazy!

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
2. 3. 2007   #12
-
0
-

To OndreJ: diki moc si ma ale nepotesil.

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
olgo0
Věrný člen
2. 3. 2007   #13
-
0
-

tak som spravil mansi testik:

[podtrzene]unbuffered query:[/podtrzene]



$start=microtime(true);
for($a=0;$a<100;$a++):
mysql_unbuffered_query('create table t'.$a.' (a int, b varchar(20));');
mysql_unbuffered_query('dro p table t'.$a);
endfor;
$time=microtime(true)-$start;
echo 'time: '.$time;

priemerny cas: 6.46
maximalna odchilka: 0.44

[podtrzene]query:[/podtrzene]


$start=microtime(true);
for($a=0;$a<100;$a++):
mysql_query('create table t'.$a.' (a int, b varchar(20));');
mysql_query('dro p table t'.$a);
endfor;
$time=microtime(true)-$start;
echo 'time: '.$time;

priemerny cas: 6.53
maximalna odchilka: 0.42


[podtrzene]begin query commit:[/podtrzene]


$start=microtime(true);
mysql_query('begin;');
for($a=0;$a<100;$a++):
mysql_query('create table t'.$a.' (a int, b varchar(20));');
mysql_query('dro p table t'.$a);
endfor;
mysql_query('commit;');
$time=microtime(true)-$start;
echo 'time: '.$time;

priemerny cas: 6.80
maximalna odchilka: 0.80

[podtrzene]begin unbuffered query commit:[/podtrzene]


$start=microtime(true);
mysql_unbuffered_query('begin;');
for($a=0;$a<100;$a++):
mysql_unbuffered_query('create table t'.$a.' (a int, b varchar(20));');
mysql_unbuffered_query('dro p table t'.$a);
endfor;
mysql_unbuffered_query('commit;');
$time=microtime(true)-$start;
echo 'time: '.$time;

priemerny cas: 7.31
maximalna odchilka: 0.61

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
2. 3. 2007   #14
-
0
-

Zkus provest jeste nejake selecty, pokud mozno s velkym mnozstvim dat.

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
dalaman0
Věrný člen
3. 3. 2007   #15
-
0
-

JJ... myslim ze by to zaujimalo viac ludi..

Nahlásit jako SPAM
IP: ...–
Lepšie je mať psa na saláme ako salámu pod psom !!!
olgo0
Věrný člen
5. 3. 2007   #16
-
0
-

tak tu to mate (dalaman, ComanderZ):

testoval som operacie insert,select,update,delete pri roznych objemoch dat (1,255,65 536). vsetko som vkladal do databaze kde nebola ina tabulka (iba ta s ktorou som pracoval). tabulka mala jeden stlpec (ake realne) typu text.
skusal som vsetky varianty takako minule, koli presnosti som vsetko 20 krat opakoval (minule iba 10 (zato rucne)), vysledny cas potom spriemeroval.

[podtrzene]str 1:[/podtrzene]
pocet opakovani: 500.
(cas jednotlivich pokusov bol merani s presnostov 5 destinnych miest takze aj tento vysledok by mal mat iba 5 platnych desatinnych cislic)
[podtrzene]begin query commit:[/podtrzene]
priemerny cas: 2.261668
max. odchylka: 0.576032

[podtrzene]unbuffered query:[/podtrzene]
priemerny cas: 2.3737075
max. odchylka: 0.2045525

[podtrzene]query:[/podtrzene]
priemerny cas: 2.4403295
max. odchylka: 1.4868205

[podtrzene]begin unbuffered query commit:[/podtrzene]
priemerny cas: 4.067099
max. odchylka: 1.615561


[podtrzene]str 255:[/podtrzene]
pocet opakovani: 50. (s pochopitelnych dovodov menej ako pri str 1)

[podtrzene]unbuffered query:[/podtrzene]
priemerny cas: 2.5196325
max. odchylka: 0.1

[podtrzene]query:[/podtrzene]
priemerny cas: 3.048183
max. odchylka: 0.152333

[podtrzene]begin unbuffered query commit:[/podtrzene]
priemerny cas: 3.070419
max. odchylka: 0.105989

[podtrzene]begin query commit:[/podtrzene]
priemerny cas: 3.098582
max. odchylka: 0.265408


[podtrzene]str 65 536:[/podtrzene]
pocet opakovani: 5. (pozri vissie)

[podtrzene]unbuffered query:[/podtrzene]
priemerny cas: 0.3429995
max. odchylka: 0.1

[podtrzene]begin unbuffered query commit:[/podtrzene]
priemerny cas: 0.3450418
max. odchylka: 0.1

[podtrzene]begin query commit:[/podtrzene]
priemerny cas: 0.3540616
max. odchylka: 0.1

[podtrzene]query:[/podtrzene]
priemerny cas: 0.3588515
max. odchylka: 0.1

je vydiet ze unbuffered_query s toho vysla docela dobre ale jo to hodne individualne takze nejaki obraz si uz spravte sami.
btw.: keby mi niekto neveril alebo sa mu snad zdalo ze som bol malo dosledni mozem pastnut zdrojaky.

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

Tabulka mysql viac udajov — založil Martin

Mysql jedna osoba, viac knih — založil Takeshi

Mysql_query(): — založil ebeš

Problém s mysql_query — založil Dreity

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý