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 04:33 | Nová verze

    Open source software pro úpravu digitálních fotografií LightZone (Wikipedie) byl vydán v nové verzi 5.0.0. LightZone je dnes k dispozici pod licencí BSD. Původně se jednalo o proprietární software vyvíjený společností Light Crafts. Ta v prosinci 2012 souhlasila s uvolněním zdrojových kódů jako open source [Wayback Machine].

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

    Byla vydána verze 0.84 telnet a ssh klienta PuTTY (Wikipedie). Podrobnosti v přehledu nových vlastností a oprav chyb a Change Logu.

    Ladislav Hagara | Komentářů: 0
    22.5. 19:44 | IT novinky

    Microsoft představil Azure Linux 4.0 a Azure Container Linux. Na konferenci Open Source Summit North America 2026 organizované konsorciem Linux Foundation a sponzorované také Microsoftem. Azure Linux 4.0 vychází z Fedora Linuxu. Azure Container Linux je založen na projektu Flatcar. Azure Linux (GitHub, Wikipedie) byl původně znám jako CBL-Mariner.

    Ladislav Hagara | Komentářů: 0
    22.5. 12:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 165 (pdf).

    Ladislav Hagara | Komentářů: 0
    22.5. 10:55 | Nová verze

    Byla vydána verze 9.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.

    Ladislav Hagara | Komentářů: 5
    22.5. 09:33 | IT novinky

    Firefox 151 podporuje Web Serial API. Pro komunikaci s různými mikrokontroléry připojenými přes USB nebo sériové porty už není nutné spouštět Chrome nebo na Chromiu postavené webové prohlížeče.

    Ladislav Hagara | Komentářů: 9
    22.5. 04:44 | Nová verze

    Byla vydána nová stabilní verze 8.0 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 148. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    21.5. 21:33 | Bezpečnostní upozornění

    Ve FreeBSD byla nalezena a opravena zranitelnost FatGid aneb CVE-2026-45250. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel se může stát rootem.

    Ladislav Hagara | Komentářů: 0
    21.5. 14:33 | IT novinky

    Společnost Flipper Devices oznámila Flipper One. Zcela nový Flipper postavený od nuly. Jedná se o open-source linuxovou platformu založenou na čipu Rockchip RK3576. Hledají se dobrovolníci pro pomoc s dokončením vývoje (ovladače, testování, tvorba modulů).

    Ladislav Hagara | Komentářů: 2
    21.5. 14:00 | Nová verze

    Vývojáři Wine oznámili vydání verze 2.0 knihovny vkd3d pro překlad volání Direct3D na Vulkan. Přehled novinek na GitLabu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (12%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1698 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Dotaz ohledně sql dotazů v PHP

    17.3.2012 15:40 Jareš
    Dotaz ohledně sql dotazů v PHP
    Přečteno: 385×
    Ahoj, mám dotaz ohledně sql dotazů do db v PHP. Pod volaný dotaz dám tohle
    print_r($stmt->errorinfo());
    a i když se všechno uloží, přesto je na výstupu tohle
    Array
    (
        [0] => 00000
        [1] => 
        [2] => 
    )
    Jedná se o chybu nebo jen o nějaký informační výsledek? Jak můžu udělat vypsání chyb pokud nějaká nastane? Děkuji

    Řešení dotazu:


    Odpovědi

    17.3.2012 16:03 Kit
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Metoda errorinfo() se volá pouze v případě, kdy nějaká chyba vznikla. Viz manuál.

    17.3.2012 16:09 Jareš
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Na tu stránku již dvě hodiny čučím ale o tom jak zjistit jestli existuje chyba tam není ani čárka :-(
    17.3.2012 16:45 Kit
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Ty to nevidíš?
    $stmt = $dbh->prepare('bogus sql');
    if (!$stmt) {
        print_r($dbh->errorInfo());
    }
    
    Ve svých aplikacích si to však zjednodušuji:
    if(!($stmt = $dbh->prepare('bogus sql'))
        throw new Exception('Chybný dotaz SQL');
    17.3.2012 16:58 Jareš
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    No to vídím, ale tohlé žádnou chybu nikdy nevrátí, i když odnstaluji na serveru mysql db :-D

    Celé to mám takto ale chyba fakt žádná :(
              $stmt = $pdo->prepare("INSERT INTO `reg` (`a`, `b`, `c`, `d`, `e`) VALUES (?,; ?,; ?,; now(),; 1;)");
              $stmt->execute(array($_POST['a'], $_POST['b'], $_POST['c'], $_POST['e']));
    
              if (!$stmt) {
              print_r($pdo->errorInfo());
              }
    17.3.2012 17:22 Kit
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Však tu chybu vůbec netestuješ. Místo toho hned voláš execute().
    $stmt = $pdo->prepare("INSERT INTO `reg` (`a`, `b`, `c`, `d`, `e`) VALUES (?,; ?,; ?,; now(),; 1;)");
    if (!$stmt) {
        print_r($pdo->errorInfo());
    }
    $result=$stmt->execute(array($_POST['a'], $_POST['b'], $_POST['c'], $_POST['e']));
    if (!$result) {
        print_r($stmt->errorInfo());
    }
    17.3.2012 17:34 Jareš
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Jo takhle to je, hm, je vidět, že o tom máš vážně přehled..Jinak který ten výpis kontroluje uložení do mysql? Ten druhý? Ten první kontroluje nějakou validnost toho dotazu? Díky

    17.3.2012 17:47 Kit
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Ten první výpis kontroluje validnost SQL dotazu (máš ho špatně, to asi víš), druhý oznamuje jeho neúspěšné provedení.
    17.3.2012 18:31 Jareš
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Špatně? Hm, zrovna tento příklad jsem obšlehl zde ve fórum a zrovna jsi ho psal i ty jestli se nepletu zde nebo jsem to špatně pochopil? Dík
    17.3.2012 18:37 Kit
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Máš špatně ten INSERT. Ty středníky mezi otazníky tam nepatří.

    Veškeré starosti s chybami v PDO se dají elegantně vyřešit, pokud jako 4. parametr konstruktoru dáš array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION). Nemusíš se pak piplat s if() a print_r(), prostě jen píšeš příkazy a nic netestuješ.
    17.3.2012 18:57 Jareš
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Máš špatně ten INSERT. Ty středníky mezi otazníky tam nepatří.
    Nepatří tam tedy ani jeden středník?
    Veškeré starosti s chybami v PDO se dají elegantně vyřešit..
    Tak že celý konstruktor bude takto?
    $pdo = new PDO ('mysql:host='.$host.';dbname='.$db.';charset=UTF-8', $user, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8"), array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    A jak pak zjistím, že nastala chyba? když nebudu psát žádnou if()?

    Dík

    BTW: Můžu si dovolit jeden osobní dotaz?

    17.3.2012 19:15 Kit
    Rozbalit Rozbalit vše Re: Dotaz ohledně sql dotazů v PHP
    Středník ukončuje SQL dotaz. Chyby zachytíš v obsluze výjimek.

    Konstruktor nebude obsahovat 5. parametr, ale oba atributy budou ve 4. parametru:
    try{
        $pdo = new PDO('mysql:host='.$host.';dbname='.$db.';charset=UTF-8', $user, $password,
            array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
        $stmt = $pdo->prepare("INSERT INTO `reg` (`a`, `b`, `c`, `d`, `e`) VALUES (?, ?, ?, now(), 1);");
        $stmt->execute(array(1,2,3));
    } catch(PDOException $e) {
        echo $e->getMessage(),"\n",$e->getTraceAsString(),"\n";
    }
    
    Osobní dotaz? Jsme na veřejném fóru. Ptej se na co chceš a já odpovím, na co budu chtít.

    Založit nové vláknoNahoru

    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.