Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

PHP a firebird

neddy
verified
rating uzivatele
(3 hodnocení)
15. 8. 2007 23:31:50
Zdravím všechny. Sice by do sekce php a mysql toto nemělo patřit, ale...
Má někdo zkušenosti s PHP ve spojení s firebirdem? Mám menší vlastní systém udělán na mysql a potřebuji jej "překopat" na firebird. V SQL dotazech by problém nastat neměl (žádné specialitky nepoužívám), spíše že firebird nemá autoinkrement a řeší se to procedurou a chtěl bych vědět jak? Našel jsme popis procedury, která to zajistí, ale třeba jak se to řeší pro pro více tabulek atd.?
15. 8. 2007 23:31:50
https://webtrh.cz/diskuse/php-a-firebird/#reply16647
Petr Skopal
verified
rating uzivatele
(27 hodnocení)
15. 8. 2007 23:36:35
Prosím? O co se snažíš?
15. 8. 2007 23:36:35
https://webtrh.cz/diskuse/php-a-firebird/#reply16646
Asi má na mysli databázi:
http://www.firebirdsql.org/
16. 8. 2007 01:24:23
https://webtrh.cz/diskuse/php-a-firebird/#reply16645
neddy
verified
rating uzivatele
(3 hodnocení)
16. 8. 2007 01:38:31
Napsal jersywoo;10218
Asi má na mysli databázi:
http://www.firebirdsql.org/
ano, nekdo to mozna zna jen jako interbase..
16. 8. 2007 01:38:31
https://webtrh.cz/diskuse/php-a-firebird/#reply16644
Mirun
verified
rating uzivatele
(13 hodnocení)
16. 8. 2007 12:51:27
Napsal neddy;10210
Zdravím všechny. Sice by do sekce php a mysql toto nemělo patřit, ale...
Má někdo zkušenosti s PHP ve spojení s firebirdem? Mám menší vlastní systém udělán na mysql a potřebuji jej "překopat" na firebird. V SQL dotazech by problém nastat neměl (žádné specialitky nepoužívám), spíše že firebird nemá autoinkrement a řeší se to procedurou a chtěl bych vědět jak? Našel jsme popis procedury, která to zajistí, ale třeba jak se to řeší pro pro více tabulek atd.?
firebird na to má generátory. co znamená pro více tabulek? Automaticky se to dá udělat v triggeru, ale nezjistíš tak hodnotu budoucího PK, takže pokud se jendá o relaci, je lepší si před vložením záznamu zjistit hodnotu dotazem na generátor, tu si uschovat a pak jí používat jako relační klíč.
16. 8. 2007 12:51:27
https://webtrh.cz/diskuse/php-a-firebird/#reply16643
neddy
verified
rating uzivatele
(3 hodnocení)
20. 8. 2007 13:14:44
Napsal Mirun;10247
firebird na to má generátory. co znamená pro více tabulek? Automaticky se to dá udělat v triggeru, ale nezjistíš tak hodnotu budoucího PK, takže pokud se jendá o relaci, je lepší si před vložením záznamu zjistit hodnotu dotazem na generátor, tu si uschovat a pak jí používat jako relační klíč.
hodnota budouciho PK me ani nezajima, spise aby se zajistil autoinkrement, takze pokud prijde INSERT, tak aby automaticky vlozil do PK +1. Vice tabulek je mysleno to, zda je potreba udelat trigger jeden, pro PK vsech tabulek nebo kazda tabulka musi mit vlastni trigger?
20. 8. 2007 13:14:44
https://webtrh.cz/diskuse/php-a-firebird/#reply16642
Mirun
verified
rating uzivatele
(13 hodnocení)
21. 8. 2007 14:50:03
Napsal neddy;10551
hodnota budouciho PK me ani nezajima, spise aby se zajistil autoinkrement, takze pokud prijde INSERT, tak aby automaticky vlozil do PK +1. Vice tabulek je mysleno to, zda je potreba udelat trigger jeden, pro PK vsech tabulek nebo kazda tabulka musi mit vlastni trigger?
trigger je vztažený vždy k tabulce, takže pro každou tabulku zvlášť. pokud tě PK OPRAVDU nezajímá (tj. nepoužíváš relace?), nejjednodušší je INSERT INTO TABLE(nazev_autoinc_pole,...) VALUES(GEN_ID(nazev_generatoru,1),...), nemusíš řešit nic, jen vytvořit v DB generátor (CREATE GENERATOR nazev), popř. poté SET GENERATOR TO počátečníhodnota
generátor ti fakticky stačí jeden pro všechny tabulky, jen ti nebudou navazovat čísla.
21. 8. 2007 14:50:03
https://webtrh.cz/diskuse/php-a-firebird/#reply16641
neddy
verified
rating uzivatele
(3 hodnocení)
21. 8. 2007 21:55:03
Napsal Mirun;10648
trigger je vztažený vždy k tabulce, takže pro každou tabulku zvlášť. pokud tě PK OPRAVDU nezajímá (tj. nepoužíváš relace?), nejjednodušší je INSERT INTO TABLE(nazev_autoinc_pole,...) VALUES(GEN_ID(nazev_generatoru,1),...), nemusíš řešit nic, jen vytvořit v DB generátor (CREATE GENERATOR nazev), popř. poté SET GENERATOR TO počátečníhodnota
generátor ti fakticky stačí jeden pro všechny tabulky, jen ti nebudou navazovat čísla.
PK mě zajímá, jen v klasickém mysql si INSERT zajistí vše sám (pokud ma PK nastaven autoinc..). Pokud to tedy chápu, tak kromě tabulek si vytvořím generátory, které budou pro PK každé tabulky zajišťovat stejnou funkci jako autoinkrement v mysql? Pokud ano, tak ten převod mysql->firebird tak hroznej nebude ;)
21. 8. 2007 21:55:03
https://webtrh.cz/diskuse/php-a-firebird/#reply16640
Mirun
verified
rating uzivatele
(13 hodnocení)
22. 8. 2007 11:03:52
Napsal neddy;10656
PK mě zajímá, jen v klasickém mysql si INSERT zajistí vše sám (pokud ma PK nastaven autoinc..). Pokud to tedy chápu, tak kromě tabulek si vytvořím generátory, které budou pro PK každé tabulky zajišťovat stejnou funkci jako autoinkrement v mysql? Pokud ano, tak ten převod mysql->firebird tak hroznej nebude ;)
ano to stačí. velký rozdíl je v tom, že mysql si udělá autoinc sám, a PK vloženého záznamu zjistíš pomocí lastinsertid, kdežto u FB ho zpětně nezjistíš nijak. proto mluvím o tom, že pokud potřebuješ vložit záznam do tabulky A a PK pak použít jako FK v dalších tabulkách B, musíš si PK nejprve zjistit (SELECT GEN_ID(nazev,1) FROM RDB$DATABASE), pak vložit záznam do A s vygenerovaným PK a pak vkládat child záznamy do B. je to trošku nezvyklý postup pro toho, kdo je zvyklý na mysql, hodně lidí v tom při přechodu tápe :)
22. 8. 2007 11:03:52
https://webtrh.cz/diskuse/php-a-firebird/#reply16639
neddy
verified
rating uzivatele
(3 hodnocení)
23. 8. 2007 08:45:50
Napsal Mirun;10684
ano to stačí. velký rozdíl je v tom, že mysql si udělá autoinc sám, a PK vloženého záznamu zjistíš pomocí lastinsertid, kdežto u FB ho zpětně nezjistíš nijak. proto mluvím o tom, že pokud potřebuješ vložit záznam do tabulky A a PK pak použít jako FK v dalších tabulkách B, musíš si PK nejprve zjistit (SELECT GEN_ID(nazev,1) FROM RDB$DATABASE), pak vložit záznam do A s vygenerovaným PK a pak vkládat child záznamy do B. je to trošku nezvyklý postup pro toho, kdo je zvyklý na mysql, hodně lidí v tom při přechodu tápe :)
Děkuji za cenné rady. Přechod stejně nebude jednoduchý, FB nezná datové typy jako enum, datetime atd.. :) Asi jsem měl začít na Oracle a FB, pak bych se jistě podobným datovým typům vyhnul..
23. 8. 2007 08:45:50
https://webtrh.cz/diskuse/php-a-firebird/#reply16638
Pro odpověď se přihlašte.
Přihlásit