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í
×
    včera 19:33 | Nová verze

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).

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

    Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    včera 04:00 | Nová verze

    Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 5
    včera 03:00 | Nová verze

    UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.

    Ladislav Hagara | Komentářů: 0
    včera 00:33 | IT novinky Ladislav Hagara | Komentářů: 0
    1.12. 16:00 | Komunita

    Fedora zve na dvoudenní testování (2. a 3. prosince), během kterého si můžete vyzkoušet nové webové uživatelské rozhraní (WebUI) projektu FreeIPA. Pomozte vychytat veškeré chyby a vylepšit uživatelskou zkušenost ještě předtím, než se tato verze dostane k uživatelům Fedory a celého linuxového ekosystému.

    Ladislav Hagara | Komentářů: 4
    1.12. 13:22 | IT novinky

    Eben Upton oznámil zdražení počítačů Raspberry Pi, kvůli růstu cen pamětí, a představil 1GB verzi Raspberry Pi 5 za 45 dolarů.

    Ladislav Hagara | Komentářů: 0
    1.12. 04:44 | Humor

    Linus Torvalds na YouTube kanálu Linus Tech Tips staví dokonalý linuxový počítač.

    Ladislav Hagara | Komentářů: 6
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (23%)
     (16%)
     (25%)
     (16%)
     (18%)
    Celkem 424 hlasů
     Komentářů: 18, poslední včera 18:34
    Rozcestník

    Dotaz: Dotaz ohledně sql dotazů v PHP

    17.3.2012 15:40 Jareš
    Dotaz ohledně sql dotazů v PHP
    Přečteno: 379×
    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.