Differences
This shows you the differences between two versions of the page.
|
cor4:app:objects:cdatabase [2008/03/08 21:38] ivivan |
cor4:app:objects:cdatabase [2021/01/05 11:39] (current) |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| Ez az osztály az adatbázisokhoz való kapcsolódást teszi lehetővé. | Ez az osztály az adatbázisokhoz való kapcsolódást teszi lehetővé. | ||
| + | |||
| ===== konstruktor ===== | ===== konstruktor ===== | ||
| Line 16: | Line 17: | ||
| Az alapértelmezett szerveren kapcsolódik a megadott adatbázishoz. | Az alapértelmezett szerveren kapcsolódik a megadott adatbázishoz. | ||
| - | ''CDatabase(string type, string user, string password [, string host [, string database [, int port]]])'' | + | ''CDatabase(string type, string user, string password [, string host [, string database [, int port [, string schema]]]])'' |
| Általános adatbáziskapcsolat nyitása. | Általános adatbáziskapcsolat nyitása. | ||
| Line 32: | Line 33: | ||
| * database: az adatbázis neve | * database: az adatbázis neve | ||
| * port: az adatbázis portja; ha **0**-t adunk meg az adott adatbázis tipushoz használt alapértelmezett portot használja (ez az alapérték is) | * port: az adatbázis portja; ha **0**-t adunk meg az adott adatbázis tipushoz használt alapértelmezett portot használja (ez az alapérték is) | ||
| + | * schema: PostgreSQL adatbázis esetén az alapértelmezett séma neve; a többi adatbáziskezelő figyelmen kívül hagyja | ||
| - | A megfelelő elemek elhagyásakor az [[cor4:app:appconfig.inc.php]]-ban definiált konstansok lesznek felhasználva, ezek rendre: ''DB_TYPE'', ''DB_USER'', ''DB_PASS'', ''DB_HOST'', ''DB_DEFAULT'' és ''DB_PORT''. | + | A megfelelő elemek elhagyásakor az [[cor4:app:appconfig.inc.php]]-ban definiált konstansok lesznek felhasználva, ezek rendre: ''DB_TYPE'', ''DB_USER'', ''DB_PASS'', ''DB_HOST'', ''DB_DEFAULT'', ''DB_PORT'' és ''DB_SCHEMA''. |
| Az [[http://www.sqlite.org|SQLite]] adatbáziskezelő egyetlen fájlt használ és felhasználó azonosítás sincs benne, ezért ebben az esetben a ''database'' paraméterben (illetve a ''DB_DEFAULT'' konstansban) az adatbázis fájl nevét kell megadni, a többi paramétert figyelmen kívül hagyja. | Az [[http://www.sqlite.org|SQLite]] adatbáziskezelő egyetlen fájlt használ és felhasználó azonosítás sincs benne, ezért ebben az esetben a ''database'' paraméterben (illetve a ''DB_DEFAULT'' konstansban) az adatbázis fájl nevét kell megadni, a többi paramétert figyelmen kívül hagyja. | ||
| ===== Metódusok ===== | ===== Metódusok ===== | ||
| + | |||
| + | ==== isError ==== | ||
| + | |||
| + | ''bool iserror()'' | ||
| + | |||
| + | Visszaadja, hogy történt-e hiba az utolsó hívás illetve az utolsó kapcsolódás óta. A hívás törli a hiba állapotát! | ||
| + | |||
| + | ==== getErrorMessage ==== | ||
| + | |||
| + | ''string geterrormessage()'' | ||
| + | |||
| + | Visszaadja az utolsó hibaüzenetet, illetve üres stringet, ha nem történt hiba. A hívás törli a hibaüzenetet! | ||
| ==== queryAsArray ==== | ==== queryAsArray ==== | ||
| Line 58: | Line 72: | ||
| A visszaadott érték egy kétdimenziós tömb, ahol az első index 0-tól a sorok száma, a belső tömb indexei pedig az oszlopok nevei. | A visszaadott érték egy kétdimenziós tömb, ahol az első index 0-tól a sorok száma, a belső tömb indexei pedig az oszlopok nevei. | ||
| + | |||
| + | Hiba esetén a visszatérési érték a hibaüzenet, illetve üres lekérdezés esetén az 'empty' szöveg. | ||
| + | |||
| + | ==== queryAsAssocArrayWithID ==== | ||
| + | |||
| + | ''mixed queryAsAssocArrayWithID(string query)'' | ||
| + | |||
| + | A ''query'' paraméterben megadott lekérdezést végrehajtja és asszociatív tömbben visszaadja. | ||
| + | |||
| + | A visszaadott érték egy kétdimenziós tömb, ahol az első index az eredmény első eleme, a belső tömb indexei pedig az oszlopok nevei. Íly módon ez a metódus a queryAsArray és a queryAsAssocArray metódusok kombinációja. | ||
| Hiba esetén a visszatérési érték a hibaüzenet, illetve üres lekérdezés esetén az 'empty' szöveg. | Hiba esetén a visszatérési érték a hibaüzenet, illetve üres lekérdezés esetén az 'empty' szöveg. | ||
| Line 106: | Line 130: | ||
| - | ==== insert ==== | ||
| - | ''string insert(string table, array values)'' | + | ==== getinsert ==== |
| + | |||
| + | ''string getinsert(string table, array values)'' | ||
| - | A beszúrást segítő metódus, ami a ''table'' paraméterben megadott táblába szúr be egy sort úgy, hogy a ''values'' minden egyes értéke "kulcs" = "érték" formában tárolásra kerül. Az értékek kezelése megfelelően történik (a PHP **NULL** értékből SQL **null** érték lesz, a PHP boolean tipusból SQL boolean stb.) | + | A beszúrást segítő metódus, ami generál egy INSERT utasítást, ami a ''table'' paraméterben megadott táblába szúr be egy sort úgy, hogy a ''values'' minden egyes értéke "kulcs" = "érték" formában tárolásra kerül. Az értékek kezelése megfelelően történik (a PHP **NULL** értékből SQL **null** érték lesz, a PHP boolean tipusból SQL boolean stb.) Figyelni kell arra, hogy az utasítást __nem__ zárja le ";"-vel! |
| Például a következő metódus hívás az ''INSERT INTO irszam(varos,irszam,aktiv) VALUES (5,'5555','1')'' SQL utasítást eredményezi: | Például a következő metódus hívás az ''INSERT INTO irszam(varos,irszam,aktiv) VALUES (5,'5555','1')'' SQL utasítást eredményezi: | ||
| Line 122: | Line 147: | ||
| - | ==== insertwithid ==== | + | ==== getinsertwithid ==== |
| + | |||
| + | ''array getinsertwithid(string table, array values [, string idfield="id"])'' | ||
| + | |||
| + | A [[#getinsert]] metódus módosítva úgy, hogy visszaadja a beszúrni kívánt mező azonosítóját, ezért a visszatérési érték egy tömb, amelynek két tagja van: az **id** tag tartalmazza a visszaadott azonosítót, a **query** tag pedig a visszaadott insert utasítást. | ||
| + | |||
| + | ==== insert ==== | ||
| + | |||
| + | ''string insert(string table, array values)'' | ||
| + | |||
| + | Egyenértékű a ''query(getinsert(table,values))'' hívással, azaz az átadott paraméterek alapján legenerálja a megfelelő SQL utasítást, amit azonnal végre is hajt. | ||
| + | |||
| + | ==== insertWithID ==== | ||
| ''string insertwithid(string table, array values [,string idfield = "id")'' | ''string insertwithid(string table, array values [,string idfield = "id")'' | ||
| Line 128: | Line 165: | ||
| Hasonló az ''insert'' metódushoz, de a beszúrás előtt lekéri a következő id-t, ami az ''idfield'' mezőben megadott oszlophoz tartozik, és ennek megadásával végzi el a beszúrást, majd ezt az értéket adja vissza. A következő érték elkérése az aktuális adatbázis kezelőnek megfelelően működik: PostgreSQL és Firebird alatt sequensert illetve generátort használ, míg a többi adatbázis kezelőnél max(id)+1 módszert használ. | Hasonló az ''insert'' metódushoz, de a beszúrás előtt lekéri a következő id-t, ami az ''idfield'' mezőben megadott oszlophoz tartozik, és ennek megadásával végzi el a beszúrást, majd ezt az értéket adja vissza. A következő érték elkérése az aktuális adatbázis kezelőnek megfelelően működik: PostgreSQL és Firebird alatt sequensert illetve generátort használ, míg a többi adatbázis kezelőnél max(id)+1 módszert használ. | ||
| - | ==== update ==== | ||
| - | ''string update(string table, array values [,string where])'' | ||
| - | A módosítást segítő metódus, ami a ''table'' paraméterben megadott táblában módosít úgy, hogy a ''values'' minden egyes értéke "kulcs" = "érték" formában megadásra kerül. Az értékek kezelése megfelelően történik (a PHP **NULL** értékből SQL **null** érték lesz, a PHP boolean tipusból SQL boolean stb.) Amennyiben a ''where'' paraméter nem üres, akkor a megfelelő szűrő feltétel az utasítás végéhez lesz fűzve. | + | ==== getupdate ==== |
| + | |||
| + | ''string getupdate(string table, array values [,mixed where])'' | ||
| + | |||
| + | A módosítást segítő metódus, ami legenerál egy SQL utasítást, ami a ''table'' paraméterben megadott táblában módosít úgy, hogy a ''values'' minden egyes értéke "kulcs" = "érték" formában megadásra kerül. Az értékek kezelése megfelelően történik (a PHP **NULL** értékből SQL **null** érték lesz, a PHP boolean tipusból SQL boolean stb.) Amennyiben a ''where'' paraméter nem üres, akkor a megfelelő szűrő feltétel az utasítás végéhez lesz fűzve. Ha a ''where'' paraméter tömb, akkor a tömb elemei ''kulcs''=''ertek'' formában **AND**-el összefűzve fognak az utasítához adódni. | ||
| Például a következő metódus hívás az ''UPDATE irszam SET varos=5,irszam='5555',aktiv='1' WHERE id=5'' SQL utasítást eredményezi: | Például a következő metódus hívás az ''UPDATE irszam SET varos=5,irszam='5555',aktiv='1' WHERE id=5'' SQL utasítást eredményezi: | ||
| Line 141: | Line 180: | ||
| 'aktiv'=>true | 'aktiv'=>true | ||
| ), | ), | ||
| - | 'id=5'); | + | array('id'=>5)); |
| </code> | </code> | ||
| + | |||
| + | ==== update ==== | ||
| + | |||
| + | ''string update(string table, array values [, mixed where])'' | ||
| + | |||
| + | Egyenértékű a ''query(getupdate(table,values,where))'' hívással, azaz legenerálja a megfelelő UPDATE utasítást, amit azonnal végre is hajt. | ||
| + | |||
| + | ==== getdelete ==== | ||
| + | |||
| + | ''string getDelete(string table [, mixed where])'' | ||
| + | |||
| + | A megadott táblából a feltételeknek megfelelő sorokat törlő utasítást ad vissza. A ''where'' paramétert a [[#getUpdate]]-hez hasonlóan értékeli ki. Például a következő kódrészlet a ''DELETE FROM irszam WHERE irszam=5 AND aktiv=true'' SQL utasítást fogja eredményezni. | ||
| + | |||
| + | <code php> | ||
| + | $db->getDelete('irszam', | ||
| + | array('irszam'=>5, | ||
| + | 'aktiv'=>true)); | ||
| + | </code> | ||
| + | |||
| + | ==== delete ==== | ||
| + | |||
| + | ''void delete(string table [, mixed where])'' | ||
| + | |||
| + | Egyenértékű a ''query(getDelete(table,where))'' hívással. | ||
| ==== disconnect ==== | ==== disconnect ==== | ||
| Line 155: | Line 218: | ||
| Nyit egy új tranzakciót. A jelenleg támogatott adatbáziskezelők egyike sem tudja az egymásba ágyazott tranzakciókat kezelni, ezért tranzakción belül új tranzakció nyitása hatástalan. | Nyit egy új tranzakciót. A jelenleg támogatott adatbáziskezelők egyike sem tudja az egymásba ágyazott tranzakciókat kezelni, ezért tranzakción belül új tranzakció nyitása hatástalan. | ||
| + | Egyben törli a hibaüzenet szövegét és a hiba állapotot is, így az [[#isError]] és [[#getErrorMessage]] függvény a hívás után **false** illetve üres string értékkel fog visszatérni. | ||
| ==== EndTransaction ==== | ==== EndTransaction ==== | ||