Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před 7 měsíci

taubda
Nový člen
Registrovaný: 15. 10. 2011
Příspěvky: 7

Stále vyhazovaná chyba v dibi::update

Zdravím,
nedávno jsem začal dělat s dibi a když chci použít příkaz dibi::update tak mi to vyhodí chybovou hlášku : Cannot redeclare class DibiPcreException in …\www\admin\dibi\dibi.php on line 61. Přitom já jsem se v dibi souborech nehrabal a zkoušel jsem ho asi 3× znova stáhnout a chyba stále vyskakuje. Přitom kodu myslím že chybu nemám, takže opravdu nechápu pro to nejde. Jsem začátečník takže na mě prosím berte ohledy :). Díky Taubda

dibi::update("text",array(
             "name" => $_POST["name"],
             "author" => $_POST["author"],
             "text" => $_POST["text"],
))->where("id = %i", $id)->execute();

 

#2 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

Zkoušel jsi stáhnou aktuální verzi z GitHubu?

 

#3 před 7 měsíci

taubda
Nový člen
Registrovaný: 15. 10. 2011
Příspěvky: 7

Re: Stále vyhazovaná chyba v dibi::update

Stáhl jsem novou verzi a nyní to vyhazuje chybku :
class DibiVariable in …\www\admin\dibi\dibi.php on line 65

Opravdu nevím co stím páč v tom souboru dibi.php na řádku 65 nic není. Děkuji za všechny rady.

 

#4 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

Divné. Nepoužíváš nějaký akcelerátor? Nebo vlastní class loader?

 

#5 před 7 měsíci

taubda
Nový člen
Registrovaný: 15. 10. 2011
Příspěvky: 7

Re: Stále vyhazovaná chyba v dibi::update

promin, ale nevím co je to akcelerátor. Opravdu jsem jen začátečník. Tip bych si že je to obecný název pro programy typu EasyPHP které používám (verze 5.3.6) takže nevím zda to může být tím páč na webu jsem to nezkoušel. V dibi jsem nic neupravoval. Taubda

 

#6 před 7 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

Ta chyba je, že za poslední položkou pole s sloupci a jejich novými hodnotami je čárka. Takže dibi čeká další položku toho pole, ale ta už není.

Když se ta čárka za poslední položkou toho pole zruší, tak už by mělo být všechno OK.

Takže poté (po změně) bude celý příkaz takto:

dibi::update(   "text",array(
                "name" => $_POST["name"],
                "author" => $_POST["author"],
                "text" => $_POST["text"]
))->where("id = %i", $id)->execute();

Editoval Václav M. (20. 10. 2011 11:28)


Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#7 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

Václav M.
Čárka tam klidně může být, to je standard PHP syntax.

taubda
Zjednodušeně řečeno… při vykonávání PHP kódu se kód pokaždé naparsuje, poté se převede do bytekódu a tento bytekód je spuštěn. Parsování a převod do bytekódu má určitou procesorovou režii a aby se ušetřila, existují pro PHP rozšíření, který bytekód udržují dokud se PHP skript nezmění. Tím se sníží režie a stránky se načítají rychleji.

EasyPHP neznám a nevím jak se konfiguruje. Ale najdi si php.ini soubor, volby extension=xxxxxxxx.dll a o každé povolené si něco vygoogli ať víš co dělá. Akcelerátory a debugery zakaž a pak restartuj webserver.

 

#8 před 7 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

Milo napsal(a):

Václav M.
Čárka tam klidně může být, to je standard PHP syntax.

Ale stejně bych tu čárku za poslední položkou stejně raději odstranil.

Takže bych doporučil použití

dibi::test("UPDATE `text` SET %a", array(...) );

A to by odhalilo případnou chybu v SQL, pokud se tam nějaká vyskytuje.

Editoval Václav M. (20. 10. 2011 14:04)


Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#9 před 7 měsíci

22
dibi guru
Registrovaný: 18. 1. 2010
Příspěvky: 1423

Re: Stále vyhazovaná chyba v dibi::update

Václav M. napsal(a):
A PHP to také vadí.

.. čemu to vadí? Na žadný problém jsem s čarkou za posledním prvkem nikdy nenarazil…

 

#10 před 7 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

Koukám, že jsem byl s tou opravou pomalý. Takže si někdo mohl přečíst …


Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#11 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

V SQL chyba není, to by vyskočila DibiException. Vypadá to, že se volá 2× require dibi.php, nebo dělá problém nějaký akcelerátor (což už se mi také několikrát stalo).

 

#12 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

taubda napsal(a):

dibi::update("text",array(
             "name" => $_POST["name"],
             "author" => $_POST["author"],
             "text" => $_POST["text"],
))->where("id = %i", $id)->execute();

syntaxe je naprosto v pořádku a zde chyba není. Chyba bude buď v pokusu o opakovanou inicializaci, možná nějaký hloupý loader načítá třídu znova… Nebo máš zaplé nějaké rozšíření, které to rozbíjí. Chyba je tedy na serveru, né v tomto kódu.

Ukaž tedy jak dibi inicializuješ a jaké máš loadery… atd


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

 

#13 před 7 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

No, a co takhle použít

dibi::query("UPDATE `text` SET %a", array(...) )

Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#14 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

Proč? nic si tím nepomůžeš a je to jenom delší zápis…


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

 

#15 před 7 měsíci

taubda
Nový člen
Registrovaný: 15. 10. 2011
Příspěvky: 7

Re: Stále vyhazovaná chyba v dibi::update

Děkuju všem za rady, ale zkusil jsem upravit nějaké ty extension= (díky Milo !) a už to krásně jede. Díky !

 

#16 před 7 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

HosipLan napsal(a):

Proč? nic si tím nepomůžeš a je to jenom delší zápis…

Mě nepřipadá, že by ten můj zápis byl o tolik delší … ale budiž, protože každému vyhovuje něco jiného.

-->
A jen tak mimochodem, na stránce DIBI Quick Start je tenhle text

dibi::query('UPDATE `table` SET ', array(
    'time' => new DateTime,
));
// UPDATE `table` SET ('2008-01-01 01:08:10')

Jenže v textu použitého SQL dotazu je chyba – chybí totiž název sloupce, jehož obsah se mění – nebo ne?

Editoval Václav M. (21. 10. 2011 22:05)


Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#17 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

Je u toho napsáno:

Také si můžeme dovolit luxus žádný modifikátor před polem neuvést. V tom případě dibi použije tuto dedukci: jde-li o příkaz INSERT či REPLACE, zvol %v, jinak %a (platí pro asociativní pole).

 

#18 před 7 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

Chyba není v tom PHP příkazu

dibi::query('UPDATE `table` SET ', array(
    'time' => new DateTime,
));

ale v tom zapoznámkovaném SQL dotazu

// UPDATE `table` SET ('2008-01-01 01:08:10')

Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#19 před 7 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

Aha, už to vidím. Tohle spíš patří do vlákna Dokumentace…

 

#20 před 7 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

To připouštím – že by to chtělo odstřihnout (posledních pár příspěvků) a přemístit do sekce Dokumentace …


Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#21 před 6 měsíci

taubda
Nový člen
Registrovaný: 15. 10. 2011
Příspěvky: 7

Re: Stále vyhazovaná chyba v dibi::update

Mohu se teda zeptat jak to má správně být? Nějak jsem to nepochopil..

 

#22 před 6 měsíci

Václav M.
Člen
Registrovaný: 19. 10. 2011
Příspěvky: 33

Re: Stále vyhazovaná chyba v dibi::update

Co? Ten chybný dotaz z stránky Dibi Quick start? Ten by měl být přeci (datum a čas jsem, samozřejmě, ponechal z původního textu)

// UPDATE `table` SET `time`='2008-01-01 01:08:10'

Chybami se člověk učí – ale někteří lidé jsou nepoučitelní.

 

#23 před 6 měsíci

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

Re: Stále vyhazovaná chyba v dibi::update

Jde o to, že ukázový kód je napsaný správně a SQL dotaz se vygeneruje správně. Je chyba pouze v komentáři pod kódem.

 

Zápatí