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]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cor4:app:objects:cdatabase [2006/03/10 21:24]
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 65: Line 89:
 ''mixed queryRow(string query)'' ''mixed queryRow(string query)''
  
-A visszaadott érték a lekérdezés első sora asszociatívan indexelve. Ennek megfelelően a következő két kódrészlet egyenértékű:+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ű:
  
 <code php> <code php>
-  // első verzió+  // első verzió: queryAsAssocArray
   $temp = $db->queryAsAssocArray($query);   $temp = $db->queryAsAssocArray($query);
   $temp = $temp[0];   $temp = $temp[0];
  
-  // második verzió+  // második verzió: queryRow
   $temp = $db->queryRow($query);   $temp = $db->queryRow($query);
 +
 +  // harmadik verzió: fetchRow
 +  $db->query($query);
 +  $temp = $db->fetchRow();
 </code> </code>
  
Line 100: Line 128:
 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. 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',true)'' SQL utasítást eredményezi:+==== 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:
  
 <code php> <code php>
Line 114: Line 145:
                            ));                            ));
 </code> </code>
 +
 +
 +==== 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:
 +
 +<code php>
 +$db->Update('irszam',array('varos'=>5,
 +                           'irszam'=>'5555',
 +                           'aktiv'=>true
 +                           ),
 +            array('id'=>5));
 +</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 126: 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 ====

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