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 13:00 | Bezpečnostní upozornění
    Nové vydání zlib opravuje několik problémů při kompresi a dekompresi dat, přetečení bufferů, čtení mimo vyhrazenou paměť, únik neinicializovaných dat. Zvlášť významné jsou chyby v inflateGetDictionary(), inflateSync() a gzwrite(), které mohou způsobit poškození paměti. Vysoká relevance - zlib používá řada systémových i aplikačních komponent.
    vencour | Komentářů: 0
    dnes 12:25 | Bezpečnostní upozornění
    Digicert hlásí neoprávněné čtení archivních zákaznických údajů. Došlo k němu po migraci z února 2025, po níž se interní systém, dříve dostupný jen přes VPN, stal přístupným z internetu. Chyba v oprávněních umožnila nově vytvořeným účtům číst archivní záznamy. K přístupu k datům mělo dojít mezi 27. červnem a 2. červencem 2026. DigiCert neoprávněné čtení potvrdil až 19. října 2026. Problém zpočátku vyhodnotil jako tvorbu účtů, ne jako … více »
    vencour | Komentářů: 0
    dnes 04:44 | Pozvánky

    O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.

    Ladislav Hagara | Komentářů: 0
    dnes 02:11 | IT novinky

    Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.

    vencour | Komentářů: 0
    dnes 02:00 | IT novinky

    Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.

    vencour | Komentářů: 0
    včera 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    včera 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    5.11. 19:53 | Bezpečnostní upozornění
    V Xenu objevena zranitelnost. Chyba v mechanismu grant copy umožňuje škodlivému virtuálnímu stroji číst a přepisovat libovolnou paměť jiných VM včetně privilegované domény Dom0. Dotčené verze jsou Xen 4.6 a novější. V upstreamu jsou dostupné patche pro Xen 4.17 až 4.19 a vývojovou větev. Pro starší nepodporované verze 4.6–4.16 nejsou v XSA-523 přiloženy opravy.
    vencour | Komentářů: 2
    5.11. 16:55 | Nová verze

    Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).

    ʚĭɞ 🍉 | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2997 hlasů
     Komentářů: 35, poslední včera 23:27
    Rozcestník

    Dotaz: Oprava php kódu

    21.5.2014 22:54 Dr
    Oprava php kódu
    Přečteno: 758×
    Ahoj, opraví mi prosím někdo tento kód ? Fakt už nevím jak :-( Díky
    $ids = '2,6,12,15,13,14,7,8,9,10,';
    $stmt = $pdo->prepare('SELECT * FROM table WHERE col IN (?) ORDER BY ID ASC;');
    $stmt->execute(array($ids));

    Odpovědi

    22.5.2014 00:10 Lucius
    Rozbalit Rozbalit vše Re: Oprava php kódu
    $ids udelej rovnou jako pole - $ids = array(2,6,12,15,13,14,7,8,9,10)

    a pokud to neni mozne tak ten retezec $ids prozen pres fu explode -ta vraci pole

    explode(',',$ids);

    http://cz1.php.net/explode
    22.5.2014 00:24 Dr
    Rozbalit Rozbalit vše Re: Oprava php kódu
    Jako takto? To nefunguje..
    $ids = array(2,6,12,15,13,14,7,8,9,10);
    $stmt = $pdo->prepare('SELECT * FROM table WHERE col IN (?) ORDER BY ID ASC;');
    $stmt->execute($ids);
    tohle funguje ale je mi to k ničemu :-(
    $stmt = $pdo->prepare('SELECT * FROM table WHERE col IN (2,6,12,15,13,14,7,8,9,10) ORDER BY ID ASC;');
    $stmt->execute();
    wamba avatar 22.5.2014 01:24 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Oprava php kódu
    V dokumentaci pro Perl knihovnu DBI se píše

    Also, placeholders can only represent single scalar values. For example, the following statement won't work as expected for more than one value:
    "SELECT name, age FROM people WHERE name IN (?)"    # wrong
    a předpokládám, že v PHP to bude podobné. Tedy pokud je to náhodný počet libovolných čísel, tak pravděpodobně budete muset spouštět prepare pro každé $ids zvlášť.
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    22.5.2014 10:53 Lucius
    Rozbalit Rozbalit vše Re: Oprava php kódu
    Pokud se nepletu,tak potrebujes ten jeden otaznik v IN (?) nahradit poctem hodnot v $ids

    takze

    'SELECT * FROM table WHERE col IN (?) ORDER BY ID ASC;'

    by melo vypadat nejak takto

    $ids = array(2,6,12,15,13,14,7,8,9,10);

    SELECT * FROM table WHERE col IN ('.trim(str_repeat ("?,", count($ids)),',').') ORDER BY ID ASC;

    Je to jen nastrel, nemam to ted kde kontrolovat, ale tak nejak by to melo jit
    23.5.2014 11:40 Logik
    Rozbalit Rozbalit vše Re: Oprava php kódu
    To jde, pokud v dotazu nejsou další proměnný na bindování, jinak se z toho člověk pak zvence při bindování.

    Jde se taky na bindování vykašlat a sestavit dotaz:
    $query=$pdo->prepare(
      'SELECT * FROM table WHERE col IN ('
      .implode(',', array_map(array($pdo, 'quote'), $ids)) . 
      ') ORDER BY ID ASC;'
    );
    23.5.2014 12:21 Lucius
    Rozbalit Rozbalit vše Re: Oprava php kódu
    Proc? $ids v tom prikladu je uzavrena mnozina, ktera je jen podmnozinou vsech parametru - jediny rozdil by byl v tom, ze u takto jednoducheho dotazu je vlastne $ids zaroven i polem vsech parametru, pokud by mel dlalsi parametry tak proste $ids spoji s polem pro dalsi parametry.
    23.5.2014 12:33 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Oprava php kódu
    My vlastně ani nevíme, kde se vzala proměnná $ids. Určitě ji takto neplní. Možná je to uživatelský vstup, možná výsledek dotazu v databázi. Každý případ se řeší jinak.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    23.5.2014 12:40 Lucius
    Rozbalit Rozbalit vše Re: Oprava php kódu
    To jiste, ale nez se dostane k prepare tak je uzavrena - je jedno odkud prijde, proste ve chvili prepare ma pevne dane hodnoty - takze to muze zpracovat jak jsme tu uvadeli reseni tu ma vic a pokud bude mit sql nejake dlasi parametry , tak je proste po tom zpracovani spoji s $ids. Kdyz si na to napise nejakou fu, tak to muze mit i docela pekne integrovatelne do jakehokoli kodu.
    23.5.2014 12:46 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Oprava php kódu
    Spíš bych ji označil za serializovanou. Taková práce s daty není zrovna standardní.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    22.5.2014 11:26 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Oprava php kódu
    $ids = array(2, 6, 12, 15, 13, 14, 7, 8, 9, 10);
    $sql = "SELECT * FROM table WHERE col IN (" .
        implode(", ", array_fill(0, count($ids), "?")) .
        ") ORDER BY ID ASC;";
    $stmt = $pdo->prepare($sql);
    $stmt->execute($ids);
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    22.5.2014 16:15 Dr
    Rozbalit Rozbalit vše Re: Oprava php kódu
    Díky chlapáci a můžu nějak ten SELECT již nahrazené otazníky za hodnoty nějak vidět? Zkoušel jsem var_dump() ale tam vidím jen otazníky. Díky moc.
    22.5.2014 16:39 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Oprava php kódu
    Však ty otazníky se nahrazují na serveru až po kompilaci SQL dotazu.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    22.5.2014 18:34 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Oprava php kódu

    Zjednodušeně: nemůže protože to v zásadě neexistuje, MySQL server má dotaz s otazníky + sadu hodnot a vnitřně si to tam dosadí ... juk.

    Nicméně to bala trochu „lež dětem“, pro dospělé je to trochu zamotanější na více úrovních, například dle PDO::ATTR_EMULATE_PREPARES lze zjistit (a nastavit) jestli, jsou to prováděné „server-side“ připravené dotazy nebo to PDO emuluje a tedy teoreticky, ten kompletní dotaz existuje sestavený na úrovni PDO.

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

    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.