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 180
 cor4:app:objects:cdatabase [Cor4 WIki]

This is an old revision of the document!


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 appconfig.inc.php-ban definiált default kapcsolatot adja vissza. Amennyiben az 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]]])

Általános adatbáziskapcsolat nyitása.

A paraméterek jelentése:

  • type: az adatbázis tipusa; lehet (a felsoroltak nem feltétlenül vannak belefordítva a programba):
    1. postgres
    2. mysql
    3. interbase
    4. 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)

A megfelelő elemek elhagyásakor az 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.

Az 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

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.

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.

insert

string insert(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.)

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
                           ));

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.

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.

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
                           ),
            'id=5');

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.

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).


cor4/app/objects/cdatabase.1205013952.txt.gz · Last modified: 2021/01/05 11:42 (external edit)