Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před 6 měsíci

genesis
Nový člen
Registrovaný: 18. 11. 2011
Příspěvky: 2

Jak si dibi poradí s jednořádkovými importy

Zajímalo by mne, jak řeší dibi importy, pokud se naskytne více dotazů na jednom řádku. Co jsem se dozvěděl ze zdojáku je jen to, že kontroluje soubor řádek po řádku, pokud je na konci středník, dotaz vykoná. Co když jsou na řádku 2 dotazy? Jak se dá spolehlivě rozdělit dotaz pomocí středníku?

Samozřejmě, tohle nepůjde

<?php
$dotazy = explode(";", $input);
?>

Editoval genesis (18. 11. 2011 15:05)

 

#2 před 6 měsíci

HosipLan
dibi guru
Registrovaný: 1. 6. 2009
Příspěvky: 2630

Re: Jak si dibi poradí s jednořádkovými importy

Nijak, exportuj to standardně.


Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

 

#3 před 6 měsíci

Milo
dibi guru
Registrovaný: 4. 5. 2010
Příspěvky: 298

Re: Jak si dibi poradí s jednořádkovými importy

Jak píše HosipLan, ideálně jeden dotaz na řádek a máš po starostech.

Pro 100% spolehlivost správného rozdělení bys musel udělat lexikální analýzu SQL dotazu. Pokud se jedná jen o INSERT/UPDATE, stačil by regulár cca tvaru /(.*);\s*((INSERT|UPDATE).*)/.

Případně si můžeš vytvořit driver mysqli2 cca. takto

require_once dirname(__FILE__) . '/mysqli.php';

class DibiMySqli2Driver extends DibiMySqliDriver
{
        public function query($sql)
        {
                // tady používat mysqli_multi_query()
        }
}

 

Zápatí