abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:44 | IT novinky

    Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.

    Ladislav Hagara | Komentářů: 4
    dnes 14:33 | Bezpečnostní upozornění

    Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    dnes 04:00 | Komunita

    Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).

    ❗Červivý Hřib krade❗ | Komentářů: 18
    dnes 03:33 | Nová verze

    V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.

    Ladislav Hagara | Komentářů: 0
    včera 21:11 | Komunita

    Ubuntu 27.04 bude Tenacious T-Rex.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Nová verze

    Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Humor

    Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 7
    včera 12:44 | Upozornění

    Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.

    Ladislav Hagara | Komentářů: 16
    včera 11:11 | IT novinky

    Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si

    … více »
    Ladislav Hagara | Komentářů: 11
    včera 00:55 | Pozvánky

    Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do

    … více »
    bkralik | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2840 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Dotaz: mysqli multi_query náhodně neproběhne

    5.12.2008 17:03 fakenickname | skóre: 42 | blog: fakeblog
    mysqli multi_query náhodně neproběhne
    Přečteno: 886×

    Zdravim,

      pisu takovy maly PHP+MySQL ukolnicek a zasekl jsem se na funkci addTodo() kde pomoci multi_query pridavam do databaze novy zapisek. Problem je, ze pridani do DB probehne jenom nekdy. Nepodarilo se mi vypatrat zadnou souvislost s nicim, zadne pominene chovani, proste uplne nahodne. Kod vypada priblizne takto (zkousim ruzne pokusy aby se to rozbehlo):

        public function addTodo($author, $priority, $deadline, $text, $labels)
        {
            $enteredDate = $this->todayDate();
            $query  = "START TRANSACTION;\n";
            $query .= "SELECT @IDT:=MAX(idtodo)+1 FROM Todos;\n";
            $query .= "SELECT @IDU:=idusr FROM Users WHERE username=\"".$author."\";\n";
            $query .= "INSERT INTO Todos VALUES (";
            $query .= "'0', @IDU, @IDT, '".$priority."', '".$enteredDate."', ";
            $query .= "'".$deadline."', '".$text."');\n";
            $query .= "COMMIT;";

            echo "<pre>".$query."</pre>";
            if ( $this->db->multi_query($query) )
            {
                echo "SQL DOTAZ je OK<br>";
            }
            return true;
        }

    Pri vykonavani ten SQL dotaz vypada napriklad takto:

    START TRANSACTION;
    SELECT @IDT:=MAX(idtodo)+1 FROM Todos;
    SELECT @IDU:=idusr FROM Users WHERE username="demo";
    INSERT INTO Todos VALUES ('0', @IDU, @IDT, '1', '2008-12-05', '2008-1-1', 'oo');

    COMMIT;

    Zkoušel jsem vyloučit data, místo SQL proměnných jsem použil vnořené selecty (to nefungovalo vůbec). Bez transakcí to dělá to samé. Zkoušel jsem všechno co mě napadlo a vážně už nevím (DB master zrovna nejsem).

     

    Poznámky:

    • problém je s nějvětší pravděpodobností ve funkci addTodo()

    • $this->db->multi_query($query) je vždycky úspěšná (vždy vrátí TRUE) ať už se nový záznam v DB objeví nebo ne
    • provádění SQL dotazu v phpMinAdmin je vždy úspěšné a vždy správně zapíše do DB nový záznam
    • všechny ostatní dotazy jako smazání zápisku, změna nějaké vlastnosti zápisku (done/undone), ověření jména a hesla vždy dopadnou správně, tohle je jediný problém s db v celém projektu

     

    Jako PHP používám PHP 5.2.7 with Suhosin-Patch 0.9.6.3, Apache 2.2.10, browser Firefox3, distro Archlinux

     

    Díky moc za jakékoliv rady

     

     

     

    Odpovědi

    5.12.2008 17:12 fakenickname | skóre: 42 | blog: fakeblog
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne

    Možná jsem zle vyjádřil chování. V praxi tohle: dám F5 a znovu pošlu data z formuláře do controlleru, ten je dá DB a ta je zapíše do DB. Vždycky všechno proběhne v pořádku (funkce mysqli hlásí úspěch), ale když ve vedlejším okně nechám vypsat tabulku, tak se nezmění. Dám znova F5, pošlu úplně ta samá data, úplně identický SQL dotaz, jen o pár vteřin poté a data se objeví v DB. Někdy musím dát F5 (znovuposlání dat) třeba i čtyřikrát, někdy je to okamžitě, ale nemá to žádný časový nebo množstevní charakter). Jen doufám, že je to nějaký typický newbie trap.

    5.12.2008 18:06 fakenickname | skóre: 42 | blog: fakeblog
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne
    Hmmm, tak to přecejenom byl newbie trap..

    It's very important that after executing mysqli_multi_query you have first process the resultsets before sending any another statement to the server, otherwise your socket is still blocked.

    Please note that even if your multi statement doesn't contain SELECT queries, the server will send result packages containing errorcodes (or OK packet) for single statements. (-- http://cz2.php.net/manual/en/mysqli.multi-query.php)

    Škoda, že sem si ty komentáře nečetl dřív a pozorněji..
    default avatar 5.12.2008 23:41 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne
    SELECT @IDT:=MAX(idtodo)+1 FROM Todos;
    SELECT @IDU:=idusr FROM Users WHERE username="demo";
    INSERT INTO Todos VALUES ('0', @IDU, @IDT, '1', '2008-12-05', '2008-1-1', 'oo');
    

    Boha jeho!

    6.12.2008 10:09 Karel Borkovec | skóre: 28 | blog: HP_NX9010 | Tábor
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne

    Určitě by bylo lepší rovnou napsat co máš přesně na mysli ;-)

    Používat max() pro nové ID je nesmysl. Když někdo jiný v tu chvíli vloží jiný záznam, tak data nebudou konzistentní.

    V MySQL použij auto_increment, v DB systémech, kde auto_increment není se používá sequence a trigger (např.).

    7.12.2008 01:15 fakenickname | skóre: 42 | blog: fakeblog
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne
    je to jenom vysek relevantnich casti komplikovanejsiho sql dotazu. pro rucni vytvareni noveho ID mam svoje dobre duvody
    6.12.2008 10:27 depka | skóre: 20 | blog: eterity
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne

    btw: transakce je zbytecna, pro nove id pouzij jiz zminovany auto_increment a pro zjisteni id toho druheho vnoreny poddotaz a budes to met vsechno v jenom dotazu

    6.12.2008 11:41 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne
    A že se ještě nikdo nezmínil o vytváření SQL dotazů skládáním řetězců…
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    okbob avatar 8.12.2008 11:16 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne

    Uz jsem rezignoval - na to kazdy musi prijit sam

    10.12.2008 23:33 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: mysqli multi_query náhodně neproběhne
    Hint: PHP

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.