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

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 3
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

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

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

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

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

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

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

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

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    23.4. 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 9
    23.4. 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 24
    23.4. 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 29
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 725 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Úprava dotazu do mysql v php

    8.11.2013 22:02 Petr Bureš
    Úprava dotazu do mysql v php
    Přečteno: 2427×
    Ahoj, tady jsem našel řešení pro INSERT INTO, myslí, že ho sem poskytl KIT. Snažím se tohle řešení naimpletovat pro SELECT, ale vůbec mi to nejde. Nepomůže někdo?
    function select($table, $array){
    $a = implode(', ', array_keys($array));
    $b = implode(', ', array_fill(0, sizeof($array), '=?'));
    $sql = 'SELECT '.$a.' FROM '.$table.' WHERE '.$b.' LIMIT 1';
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array_values($array));
    }

    Odpovědi

    9.11.2013 00:04 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    function select($table, $array){
    $a = implode(', ', array_fill(0, sizeof($array), '=?'));
    $sql = 'SELECT * FROM '.$table.' WHERE '.$a.'';
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array_values($array));
    return $stmt = fetchAll(PDO::FETCH_ASSOC);
    }
    takhle by to melo fungovat
    9.11.2013 00:27 Petr Bureš
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Ale no tak :-D Co tam dělá ta hvězda (*) nechci načítat tunu údajů. Nedáš to prosím líp? Na tohle já fakt nemám... Díky moc
    9.11.2013 10:34 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    ano, jeste tam chybi AND / OR v podmince... vzhledem k tomu, ze chybi dalsi argument, ktery by urcoval, jake sloupce potrebujes vytahnout, tak je tym hvezda :) navic vzhledem k tomu, ze u tohoto nelze pouzit prirozeny vyber nebo joiny, je uplne jedno, jestli tam je hvezda nebo ne (a pokud ma tabulka nekolik desitek sloupcu, tak je spatne navrzena)
    9.11.2013 11:38 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Tabulky obvykle mívají 2-10 sloupců. Pokud budeš chtít místo hvězdičky ty sloupce vyjmenovat, přidej funkci další parametr. Obvykle stejně z DB netahám jen holá data, ale potřebuji je mít v nějakém definovaném formátu. Takže se tomu dalšímu parametru nevyhneš.
    9.11.2013 00:29 Petr Bureš
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Patrně tam ještě chybí v podmínce "AND", nebo ne?
    9.11.2013 00:05 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    samozrejme $stmt->fetchAll(PDO::FETCH_ASSOC);
    9.11.2013 07:57 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Na SELECT se to moc použít nedá, protože za normálních okolností budeš požadovat jiné sloupce, než které budeš dávat do podmínky.

    Kromě toho nejsem příznivcem takového slepování SQL dotazů. Umím to, ale rád to nevidím.

    Hned za řádek $sql = ... si přidej
    var_dump($sql);
    a sleduj, jaké SQL dotazy generuješ. Snad ti docvakne, v čem děláš chybu.
    11.11.2013 01:44 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Na použivání SQL v PHP doporučuju nesnažit se vymýšlet znova kolo a použít nějakou knihovnu, vřele mohu doporučit dibi, což je malá libka (minifikovaná verze jeden soubor), která dělá jen to, co dělat má, a to je pohodlná práce s dotazy nad databází (tedy žádné ORM). Více v tutoriálu.
    Baník pyčo!
    11.11.2013 07:06 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Knihovna Dibi je zbytečně tlustá a práce s ní je nepohodlná.
    11.11.2013 12:33 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Nesouhlasím.
    Baník pyčo!
    11.11.2013 13:37 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Pokaždé přepisovat SQL dotaz do nějaké objektové nudle, když to můžu jednoduše prsknout do PDO? To je dvojí přepisování. Jednou z SQL do Dibi a podruhé z Dibi do SQL.
    Jakub Lucký avatar 11.11.2013 14:26 Jakub Lucký | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Do dibi se dá SQL psát přímo
    dibi::query("SELECT * FROM [whatever]")
    
    If you understand, things are just as they are; if you do not understand, things are just as they are.
    11.11.2013 14:54 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    a vznika dalsi mezivrstva kdy volani probiha trasou script -> dibi -> engine (ve vetsine pripadu pdo/mysqli) -> databaze

    vazne je to lepsi?
    11.11.2013 15:28 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Ano je, doporučuju si ten quick start projet ;-).
    Baník pyčo!
    11.11.2013 16:11 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    aha, takze je lepsi psat primo query pres dibi, ktera pak zavola PDO, nez primo pres PDO, protoze proc? protoze kontrola typovosti a ochrana proti sqli, kterou dela i PDO?
    12.11.2013 14:50 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    No tak ti víc vyhovuje PDO, věc vkusu...
    Baník pyčo!
    12.11.2013 16:19 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Výhodou PDO je, že objektový mód v něm funguje.
    12.11.2013 16:29 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    V dibi funguje taky. Ale já objektový mód nemusím (myslím pro sestavování dotazu), klasický mód mi, už miminálně syntaxí, mnohem více vyhovuje v dibi.
    Baník pyčo!
    12.11.2013 17:08 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    ano, ale dibi vola zase PDO... a kdyz nevola PDO, vola mysqli, tudiz nekomunikuje s db primo
    12.11.2013 17:13 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    A?
    Baník pyčo!
    12.11.2013 17:15 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Objektový mód se hodí zejména při výběru - výsledkem SQL dotazu je plnohodnotný objekt se všemi potřebnými metodami, ze kterých nejraději používám __toString(). Takový objekt pak v klidu vložím do výstupní šablony. Je to velmi pohodlné.
    12.11.2013 17:25 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Mluvil jsem o objektovém módu pro sestavování dotazu. Tedy špagety jako:
    $res = dibi::select('product_id')->as('id')
        ->select('title')
        ->from('products')
        ->innerJoin('orders')->using('(product_id)')
        ->orderBy('title')
        ->execute();
    
    ...které dibi umí, ale já je nemám rád a nepoužívám je.

    Speciálně pro Kita zvýrazním:

    Špagety jsou jednou z variant zápisu, statický mód je jednou z variant použití.

    Plnohodnotné objekty jako výsledky dotazů jsou samozřejmě užitečné, ale to patří už spíše do modelové vrstvy a ano, modelová vrstva může interně používat například dibi (nebo třeba PDO), věc vkusu ;-).
    Baník pyčo!
    12.11.2013 17:30 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    A co je to ten objekt $res? Umí to něco nebo je to jen Messenger, ve kterém je veřejný atribut product_id?
    12.11.2013 17:39 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    http://api.dibiphp.com/2.0/DibiResult.html, když ho ->fetchneš, dostaneš DibiResultIterator (iterable objekt), který se iteruje přes DibiRow (array access objekt, má tři konverzní funkce), můžeš místo fetch udělat ->fetchSingle a to ti vrátí přímo první buňku.
    Baník pyčo!
    12.11.2013 17:53 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Takže ho nemůžu přímo vložit do výstupu?
    echo "Výsledkem je: $res";
    Používám to docela často, zejména pokud $res má složitější strukturu, například řádek tabulky nebo položka seznamu s odkazy.
    12.11.2013 18:12 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Můžeš, pokud je to jedno políčko tak třeba takto:
    $res = dibi::query('select id from products where name = %s', $name)->fetchSingle();
    
    Pokud je to více políček, už musíš mít nějaké pravidlo, jak to převést na string, třeba tím, že si vytvoříš vlastní Row, třeba MyRow, která dědí od DataRow, definuješ ji metodu __toString() a nastavíš ji jako třídu pro výsledek:
    class MyRow extends DibiRow
    {
       public function __toString()
       {
         $res = "";
         foreach($this as $name => $value)
         {
           $res .= "$name:  $value
    "; } return $res; } } $res = dibi::query('select * from products where name = %s', $name)->setRowClass('MyRow')->fetch(); echo $res;
    Baník pyčo!
    12.11.2013 17:49 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Jinak možná ti jde o to nastavit si vlastní třídu jako výsledek dotazu. To dibi umí samozřejmě také ($result->setRowClass('MyRow')), kde MyRow by měl být potomkem DibiRow.
    Baník pyčo!
    11.11.2013 15:27 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Objektový mód je pouze doplněk dibi (navíc spíše experimentální) a osobně jsem ho nikdy nepoužil a ani používat nedoporučuji. Ale quick start, který jsem linkoval, ho vůbec nezmiňuje!

    Šlo mi pouze o syntaxi jako:
    dibi::query('UPDATE `table` SET `text`=%s', $text, 'WHERE flag=%i', $flag);
    
    která je IMHO velmi návyková a pohodlná. Navíc to, že je dibi jistá (velmi primitivní - což je dobře!) mezivrstva velmi pomáhá tomu, kdyby náhodou někdy přecházel na jinou databázi.

    Výkonostně tu žádné měřitelné ztráty nejsou (bavíme se o tomto módu, ne o těch objektových špagetách).

    Niméně i v tomhle "array" módu umí dibi velmi užitečná kouzla, například:
    dibi::query('UPDATE `table` SET ', array('attribut1' => 'foo', 'atribut2' => 'bar'));
    
    Baník pyčo!
    11.11.2013 17:35 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    To "užitečné kouzlo" mám na 3 řádcích ve své knihovně. Kvůli takové prkotině nepotřebuji Dibi. Stejně to nepoužívám, protože se mi příčí takhle lepit SQL dotazy. Uvedené příklady používám v této podobě:
    $update = $db->prepare("UPDATE `table` SET `text`=? WHERE flag=?");
    $update->execute(array($text, $flag));
    
    $druhy_update = $db->prepare("UPDATE `table` SET `attribut1`=?, `attribut2`=?");
    $druhy_update->execute(array('foo', 'bar'));
    
    a protože to mám ukryto v objektech modelu, které se o danou relaci starají, tak ani nevadí, že je to na dvou řádcích. Třída zůstává miniaturní.
    12.11.2013 14:48 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    To seš drsný. Představ si, že já mám taky svou knihovnu a taky svůj model (postavený na dibi). Ale tady autor dotazu chce asi s MySQL a PHP nějak začít a s dibi může hned, správně (bez SQL injection) a relativně pohodlně. A třeba si časem najde něco jiného ;-).

    Ale pokud si myslíš, že je tvá knihovna tak super, tak ji zveřejni - i s patřičnou dokumentací - a ještě lépe pro autora dotazu připrav nějaké školení, třeba si ji vybere ;-).
    Baník pyčo!
    12.11.2013 15:53 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    tak at rovnou pouzije nejaky framework na tvorbu webu... nebo jeste lepe, at to postavi na Wordpressu, treba se casem nauci i to php
    12.11.2013 16:37 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Sám používam framework (Nette) a k němu dibi (zakomponované ve svém vlastním "orm", ale to je detail). Myslím, že to nemá přímou souvislost ;-).
    Baník pyčo!
    12.11.2013 16:15 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Mám tam snad nějaké SQL injection? Co je na tom nepohodlné?

    Se zveřejněním počítám, jen co dodělám tu "omáčku".
    12.11.2013 16:34 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Nemáš, ale taky tam je těch nahrazování minimum. Dibi má těch featur fakt hodně, například:
    dibi::query('SELECT * FROM `table` WHERE %and', array(
        array('number > %i', 10),
        array('number < %i', 100),
    ));
    
    Baník pyčo!
    12.11.2013 16:35 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Nehledě na to, že s PHP 5.4 ta syntaxe vypadá ještě lépe:
    dibi::query('SELECT * FROM `table` WHERE %and', [
        ['number > %i', 10],
        ['number < %i', 100],
    ]);
    
    Baník pyčo!
    12.11.2013 16:42 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Je mi líto. Kromě existence dalšího metajazyku, který nepotřebuji, v tom nevidím žádný přínos. Pochybné je už to, že metody volají staticky, což zhoršuje testovatelnost.
    12.11.2013 16:49 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Statický režim osobně nepoužívám, ale pro začátečníky, co nemají žádný systém pro předávaní služeb, je asi nejjednodušší na použití.

    Samozřejmě můžeš dibi i normálně instancovat (i víckrát), otevřel sis ten tutorial vůbec? :-(

    A ano, ten meta jazyk je pro mě klíčová featura dibi :-).
    Baník pyčo!
    12.11.2013 16:58 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Tutoriál Dibi číst nepotřebuji. Stačí mi, když vidím, jak to v něm ostatní lepí a snaží se ukázat, jak je to super udělané. Ve statickém režimu se nedá dělat DI. Také si nedovedu představit, jak bych v Dibi pracoval s několika databázemi současně. Asi to jde podobně jako v PDO.

    Měl bys příklad nějakého zápisu, který je v Dibi jednodušší a přehlednější než v PDO?
    12.11.2013 17:06 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Kdyby sis můj příspěvek pořádně přecetl, tak zjistíš, že žádný statický režim není třeba, normálně se dibi používá samozřejmě takto:
    $options = array(
        'driver'   => 'mysql',
        'host'     => 'localhost',
        'username' => 'root',
        'password' => '***',
        'database' => 'table',
    );
    
    // v případě chyby vyhodí DibiException
    $connection = new DibiConnection($options);
    $connection->query('TRUNCATE `table`');
    
    A já sám DI s dibi normálně používám.

    A kdyby sis otevřel ten tutoriál, tak tenhle kód najdeš úplně nahoře. Ale ne, pán si to nerozklikne, aby se mu náhodou nerozbila jeho pravda o tom, jak je dibi hrozné a radši na něj bude plivat a ze sebe dělat akorát... ;-)

    A ne, už tu nic psát nebudu. Přikladů je plný ten tutoriál. Já tuhle debatu končím, koho dibi zaujalo, ať si proletí ten tutoriál, koho ne, ať si používá, co je mu milé. Nejsem žádný evangelizátor kruciš... Jen mi šlo o to doporučit dibi jako alternativu k PDO pro autora dotazu, protože se mi s ním osobně pracuje lépe (a pravděpodobně nejsem sám).
    Baník pyčo!
    12.11.2013 17:16 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    jenze dibi neni alternativa k PDO, je to dalsi vrstva nad PDO (nebavim se o normalni mysql connectoru, ktery zpusobi to, ze dibi kupodivu v novem php nebude fungovat)
    abyste si nemyslel, ze si to taham s prstu, http://api.dibiphp.com/2.1/source-drivers.DibiMySqlDriver.php.html#155-175

    a vazne, pokud pracuju na projektu, kde delam s databazi, je o dost lepsi pouzit PDO nez mysqli, uz jenom kvuli nespornym vyhodam PDO... a ne, vazne nepotrebuju dalsi vrstvu, ktera dela to, co PDO, jenom s kupou kodu navic, protoze je s tim prace "lepsi"
    12.11.2013 17:30 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    A já to snad popírám? :-D Ano, dibi je vrstva nad PDO, mysqli, mysql, pqsql, oracle...

    A ne, dibi (pro mě) nedělá to co PDO.

    Benefit dibi je (pro mě) například jeho metajazyk. Pro seznámení s ním doporučuji quickstart ;-).
    Baník pyčo!
    12.11.2013 19:54 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    to, ze pro vas nedela to co PDO, neznamena, ze ho musi pouzivat kazdy... ja se s vami nepru, ze pro urcite jedince je pouzit dibi vhodnejsi, ale reagovat na otazku "jak v PDO udelat to a to" odpovedi "vykasli se na PDO, je nanic, pouzij dibi, je super", je uplne mimo... tedy presne to, co se snazime s Kit-em dokazat

    vam pro seznameni doporucuju oficialni manual php, zjistite, ze mit kupu nenazranych knihoven (ne, neni to zadny utok na pana Grudla) je v jakemkoliv projektu, nez mensim, na obtiz... najednou se zvysi zatez, hosting / server / databaze nebude stihat a co udelate? prece se nevykaslete na to skvele dibi, kdyz dela takovou super praci :)

    tudiz ano, uzavrel bych to tim, ze vam vyhovuje dibi, nam vyhovuje PDO... a ohledne tech kotatek, co delate ve svem volnu me vubec nezajima :)
    14.11.2013 00:39 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Si to tady tak čtu, tak jsem si prošel dibi a „ne“, dibi není vrstva nad PDO, nad zbytkem ano. To že má i PDO driver to trochu mate. Použíti PDO přes dibi by bylo opodstatněné jen ve velmi specifických případech nebo při momentálním drobném šílenství uživatele :-).
    Dibi je to samé co PDO, tedy abstraktní level nad specifickým db conectorem, jenže dibi je na vyšší vrstvě (ehm tedy na nejvyšší −> nejpomalejší) a kdokoliv by se rozhodoval co použít dnes, nemá důvod si zvolit dibi, to je prostě velmi obyčejná a dost nedokonalá PHP knihovnička. Troufám si říct, že už před 10 lety jsem měl mnohem sofistikovanější (jen mysql, mysqli, postgresql a limitované mssql), bo jsem neměl jinou možnost, jak si udělat abstraktní vrstvu bez přímé vazby na dbe a proto vzniklo asi i dibi.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    12.11.2013 17:27 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Možná kdyby sis přečetl manuál k PDO, tak bys Dibi také nepotřeboval. Ale ne, pán se na manuál PDO prostě nepodívá, protože má své Dibi :-)
    12.11.2013 17:31 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Používáš mé argumenty, tvé ti došly? :-P
    Baník pyčo!
    12.11.2013 17:37 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Použil jsem tvé argumenty, abych ti dokázal, jak jsou nesmyslné. Manuál k PDO je kratší a snáze pochopitelný, než manuál k Dibi. Samotné PDO toho umí víc než Dibi.
    12.11.2013 17:41 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Nesmyslné je kritizovat něco, o čem nic nevím. To jsi tu předvedl hlavně ty. Jak můžeš vědět, že PDO toho umí víc než Dibi, když ho vůbec neznáš? A nezkoušej to otočit, já netvrdím, že PDO neznám, nebo že jsem nečetl jeho manual.
    Baník pyčo!
    12.11.2013 17:49 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Řekněme, že jsem zatím nezkoušel v Dibi otevřít víc databází současně a jedním dotazem provést výběr jako kombinaci různých tabulek z různých databází. Nevím, jestli to umí Dibi, ale PDO to zvládá. Umí to Dibi?
    12.11.2013 18:01 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Otevřít více připojení k databázím v dibi není problém (umí to jak statický způsob, tam se dá přepínat, tak způsob přes instance, vytvoří se jich víc s různými pametry připojení).

    Jeden dotaz přes více databází bohužel dibi neumí. Já to nepotřebuju. Kdybych to potřeboval, rozdělil bych to buď v dibi na více dotazů, nebo bych v tomto specifickém případě spráskl podpadky a použil PDO. Takže jo, v jednom případě si mě dostal... super že? :-)

    Teď vážně, dibi má pro mě přínos v jiných věcech (syntaxe - meta jazyk, částečná přenositelnost dotazů mezi databázemi).
    Baník pyčo!
    12.11.2013 17:32 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Co to uzavřít s tím, že tobě vyhovuje PDO, mě dibi a všichni budeme šťastní? ;-) A pro DarkKnight - ano, já používám o vrstvu víc, takže kvůli mě zemřou ročně miliony koťátek!
    Baník pyčo!
    12.11.2013 20:14 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Jsem rád, že už nemáš nic proti tomu, aby Petr Bureš (tazatel) zůstal u svého oblíbeného PDO.
    12.11.2013 20:27 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Tazatel nepůsobil, že by měl PDO jako oblíbené (to by asi dokázal vyřešit svůj dotaz sám), ale že potřebuje v PHP pracovat s MySQL a někdo mu zde poradil (nebo on si poradil - netuším) jako jeden ze způsobu PDO. Já nabídl alternativu, o které se domnívám, že by po něj mohla být lepší (což je samozřejmě subjektivní). Na tazateli je, ať si vybere :-).

    Ale dobře, abych projevil trošku sebereflexe, uznávám, že můj první post v tomto vlákně byl (schválně) trošičku provokativní, ale aspoň to spustilo zajímavou diskuzi. Je pravda, že PDO rozhraní rád nemám (jako ty nemáš rád dibi ;-)).
    Baník pyčo!
    12.11.2013 20:44 Kit
    Rozbalit Rozbalit vše Re: Úprava dotazu do mysql v php
    Pro mne tato debata také měla svůj přínos. Aspoň už nemusím číst ten manuál Dibi, který jsi mi doporučil :-)

    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.