|
|
Hmm...
|
23.8.2004 18:02
CIJOML
|
A neni lepsi si poridit databazi s podporou rollback? :D Zalohovani trva dlouuuuuuhoooo |
|
|
Re: Hmm...
|
23.8.2004 18:42
Petr Zajíc
|
Rozhodně je to lepší. V dalším díle je k tomuto tématu noticka ve smyslu tom, že transsakce, uložené procedury, triggery a jiná hejblátka činí život programátora malinko snesitelnějším.
Doufám, že si tím trochu nakloním davy postgresistů, kteří mě chtěli po uveřejnění prvního článku o MySQL lynčovat ;-))
Další díl totiž bude o odstraňování záznamů, kde je potřeba nějakého bezpečného mechanizmečku ještě daleko palčivější. |
|
|
Prohlížeč
|
1.4.2008 18:58
Dan Pelíšek
|
Dobrý den, na konci článku je napsáno: "... jako například IP adresa z níž byl přístup proveden, použitý prohlížeč a tak dále." Vím že tento dotaz nebude přímo k tématu tohoto dílu, ale přesto se zeptám. Jak se dá v php zjistit použitý prohlížeč? Typuju že to bude asi obsaženo v header, ale nevím kde. |
|
|
proměná v SQL?
|
1.4.2008 20:36
Dan Pelíšek
|
Mohu v příkazu REPLACE zvědšit číslo v buňce o 1? Jedná se o počítadlo s tým, že u každé IP bude počet, kolikrát právě daná IP navštívila stránku. Mělo by to vypadat nějak takhle:
mysql_query("REPLACE INTO tabulka (pocet, ip) VALUES (pocet+1, '".$REMOTE_ADDR."')");
Jenže pocet+1 nefunguje. Nevíte jak na to? |
|
|
Re: proměná v SQL?
|
1.4.2008 23:19
Aleš Hakl
|
To nefunguje z pomerne zrejmeho duvodu, co by to jako melo delat, kdyz to vklada novy zaznam? Hledate spise UPDATE.
Dve efektivni metody jak efektivne zmenit existujici nebo vlozit novy radek:
Provest naslepo UPDATE a pokud nezmeni zadny radek, provest INSERT. (to mi prijde jako rozumnejsi pristup)
Provest INSERT a pokud selze kvuli naruseni integritnich omezeni, provest UPDATE. (takle treba funguje neco podobneho REPLACE v sqlite)
Pochopitelne je treba to delat v transakci a zamyslet se nad nejruznejsimi soubehy, pokud tohle ucinite, zjistite, ze udelat v databazi citac, ktery je zaroven spolehlivy a efektivni v podstate nejde, ovsem otazkou je, jak moc to vadi. |
|
|
Re: proměná v SQL?
|
2.4.2008 21:01
Dan Pelíšek
|
Děkuju za odpověď. Udělat to pomocí UPDATA a INSERT mě také napadlo, ale v článku se píše doslova: "Přesně řečeno místo INSERT a UPDATE použijete REPLACE".
Zkoušel jsem použít ještě REPLACE ve tvaru UPDATE - mysql_query("REPLACE INTO tabulka SET pocet=pocet+1, ip='".$REMOTE_ADDR."'"); , ale ani toto nefunguje. Chtěl jsem REPLACE použít jen proto, abych se ho také naučil, ale pokud žádnou jeho formou nemůžu nahradit UPDATE a INSERT zároveň, tak ho nejspíš používat stejně nebudu. |
|
|
Re: proměná v SQL?
|
2.4.2008 21:28
Aleš Hakl
|
No ono to vase neni "nahradit INSERT a UPDATE zaroven", protoze "INSERT INTO foo VALUES(pocet + 1)" je evidentni nesmysl. Vyrazy v REPLACE se zcela logicky nemuzou odkazovat na hodnoty z meneho radku, protoze ten, kdyz se vyhodnocuji, nemusi existovat. REPLACE je urcene na neco trochu jineho. |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|