Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/importoldindex/action.php on line 8
Strict Standards: Declaration of action_plugin_popularity::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/popularity/action.php on line 57
Strict Standards: Declaration of action_plugin_safefnrecode::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/safefnrecode/action.php on line 66
Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/importoldchangelog/action.php on line 182
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607
====== CDatabase ======
Ez az osztály az adatbázisokhoz való kapcsolódást teszi lehetővé.
===== konstruktor =====
Az objektum létrehozáskor azonnal kapcsolódik. A következő konstruktorai vannak:
''CDatabase()''
A [[cor4:app:appconfig.inc.php]]-ban definiált default kapcsolatot adja vissza. Amennyiben az [[cor4:app:cor4app.ini|ini]] fájlban engedélyezve van a permanens kapcsolat (alapértelmezetten engedélyezve van), akkor nem kapcsolódik újra, hanem ezt a permanens kapcsolatot adja vissza.
''CDatabase(string database)''
Az alapértelmezett szerveren kapcsolódik a megadott adatbázishoz.
''CDatabase(string type, string user, string password [, string host [, string database [, int port [, string schema]]]])''
Általános adatbáziskapcsolat nyitása.
A paraméterek jelentése:
* type: az adatbázis tipusa; lehet (a felsoroltak nem feltétlenül vannak [[cor4:app:versions|belefordítva]] a programba):
- postgres
- mysql
- interbase
- sqlite
* user: a kapcsolódáshoz szükséges felhasználó név
* password: a kapcsolódáshoz szükséges jelszó
* host: az adatbázis szerver
* 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)
* 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'', ''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.
===== 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 ====
''mixed queryAsArray(string query [, bool simple])''
A ''query'' paraméterben megadott lekérdezést végrehajtja és a második paramétertől függő formában visszaadja.
Amennyiben a második paraméter **false**, akkor az eredmény tömbben az eredmény első oszlopával lesz indexelve a többi oszlop. (A lista ilyen formában várja az adatot)
Amennyiben a második paraméter **true**, akkor az eredménynek csak az első két oszlopa számít, ekkor az első oszloppal lesz indexelve a második oszlop. (A combobox ilyen formában várja az adatot)
Hiba esetén a visszatérési érték a hibaüzenet, illetve üres lekérdezés esetén az 'empty' szöveg.
==== queryAsAssocArray ====
''mixed queryAsAssocArray(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 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.
==== queryRow ====
''mixed queryRow(string query)''
A visszaadott érték a lekérdezés első sora asszociatívan indexelve. Ennek megfelelően a következő három kódrészlet egyenértékű:
// első verzió: queryAsAssocArray
$temp = $db->queryAsAssocArray($query);
$temp = $temp[0];
// második verzió: queryRow
$temp = $db->queryRow($query);
// harmadik verzió: fetchRow
$db->query($query);
$temp = $db->fetchRow();
Hiba esetén a visszatérési érték a hibaüzenet, illetve üres lekérdezés esetén az 'empty' szöveg.
==== query ====
''string query(string query)''
A paraméterben megadott lekérdezést végrehajtja. Ezután az eredményhez a ''fetchRow'' metódussal tudunk hozzáférni.
Hiba esetén a visszatérési érték a hibaüzenet, siker esetén üres string.
==== queryAsString ====
''mixed queryAsString(string query)''
A paraméterben megadott lekérdezést végrehajtja. A visszaadott érték a lekérdezés első sorának első oszlopa. Azaz amennyiben az eredmény egy sort adott és a lekérdezés egy oszlopra vonatkozott, akkor a visszatérési érték maga az eredmény.
Hiba esetén **false** értéket kapunk.
==== fetchRow ====
''mixed fetchRow()''
A ''query'' metódussal lekérdezett eredmény következő sorával tér vissza egy associatív tömbben, illetve a **false** értékkel, ha nincs már több sor. Az eredmény tömbben a mező nevével van indexelve az értéke.
==== getinsert ====
''string getinsert(string table, array values)''
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:
$db->Insert('irszam',array('varos'=>5,
'irszam'=>'5555',
'aktiv'=>true
));
==== 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")''
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.
==== 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:
$db->Update('irszam',array('varos'=>5,
'irszam'=>'5555',
'aktiv'=>true
),
array('id'=>5));
==== 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.
$db->getDelete('irszam',
array('irszam'=>5,
'aktiv'=>true));
==== delete ====
''void delete(string table [, mixed where])''
Egyenértékű a ''query(getDelete(table,where))'' hívással.
==== disconnect ====
''void disconnect()''
Megszünteti a kapcsolatot a szerverrel. Ezután nem szabad végrehajtani lekérdezést.
==== StartTransaction ====
''void StartTransaction()''
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 ====
''void EndTransaction()''
Lezárja a tranzakciót. Nem ad hibát, ha előtte nem volt nyitott tranzakció (ekkor nyilván nincs hatása).
==== Rollback ====
''void Rollback()''
A nyitott tranzakciót semmissé teszi. Nem ad hibát, ha előtte nem volt nyitott tranzakció (ekkor nyilván nincs hatása).