CXLIX. SQLite

Bevezetés

E kiterjesztés az SQLite használatához készült. Az SQLite egy C függvénykönyvtár, amely egy beágyazható SQL adatbázis motort valósít meg. Az ezzel linkelt programok külön RDBMS folyama futtatása nélkül képessé válnak SQL adatbázisok kezelésére.

Az SQLite nem egy nagy adatbázis szerverekhez kapcsolódó kliensfelület. Az SQLite egyben maga a szerver is, közvetlenül helyi fájlokkal dolgozik.

Megjegyzés: További információk az SQLite-al kapcsolatban annak webhelyéről szerezhetők be (http://sqlite.org/).

Telepítés

Ha forrásból telepítesz, olvasd el a csomaggal kapott INSTALL fájlt. Vagy használd a PEAR telepítőjét a következő parancsot kiadva parancssorból: "pear install sqlite". Az SQLite kiterjesztés tartalmaz mindent, ami a futásához szükséges, nem függ külső szoftverek melététől.

A Windows-hoz való DLL változat letölthető innen: (php_sqlite.dll).

A PHP 5-ben a teljes SQLite kiterjesztés alapértelmezetten része az alaptelepítésnek.

Követelmények

Ahhoz, hogy az itt felsorolt függvényeket használatba vehesd, a PHP-t SQLite támogatással kell fordítanod, dinamukusan töltődő kiterjesztés esetén pedig a php.ini állományban tudod aktiválni azt.

Erőforrás típusok

Az SQLite felülettel két új erőforrás típus kerül a vérkeringésbe. Az egyik az adatbázis kapcsolatot, a másik az SQL kérések eredményét (resultset) testesíti meg.

Előre definiált állandók

Az sqlite_fetch_array() és az sqlite_current() függvények egy konstansban meghatűrozott értéket várnak paraméterként, amely megmondja, mi módon nyerjék ki az SQL lekérés eredményét. A következő adatkinyerési formák alkalmazhatók:

Táblázat 1. SQLite adatkinyerési-mód konstansok

konstansértelmezés
SQLITE_ASSOC A visszakapott adatsort olyan tömbben kapjuk vissza, ahol a tömbindex az adott mező neve.
SQLITE_BOTH Kevert forma, mind számszerű indexeken, mind pedig a mezőnévnek megfelelő kulcsú tömbelemeken is visszakapjuk az adott adatsor elemeit.
SQLITE_NUM Ez esetben az adatsort számozott indexelésű tömbben kapjuk vissza, melyben az első mező száma a 0.

Futásidejű beállítások

Az alábbi függvények viselkedése befolyásolható a php.ini segítségével.

Táblázat 2. Az SQLite beállítási lehetőségei

NévAlapértelmezett értékMegváltoztathatóság
sqlite.assoc_case0PHP_INI_ALL
További részletekért a PHP_INI_* konstansokkal kapcsolatban érdemes ellátogatni a dokumentáció ini_set() oldalára.

A témába vágó konfigurációs direktívák rövid leírása

sqlite.assoc_case int

Egyaránt beállítható a névmeghagyó (0), a mezőneveket nagybetűsítő (1), vagy az ezeket kisbetűsítő (2) beállítás is.

Ezen beállítási lehetőség arra hivatott, hogy az esetleges más adatbázis rendszerekkel való kompatibilitást megarthatóvá tegye. Erre azért van szükség, mivel egyes adatbázis rendszerek vagy csupa nagybetűvel, vagy csupa kisbetűvel azonosítják a mezőnekeveket, függetlenül az adatbázis sémában megadottól.

Alaphelyzetben az SQLite meghagyja olyannak a mezőneveket, ahogy azok létre lettek hozva. Amennyiben az sqlite.assoc_case 0 értéket kap, ez az eljárásmód lesz használatban. Ha ezt 0-re vagy 2-re állítjuk, az SQLite ennek megfelelően negybetűsíti avagyon kisbetűsíti ezeket a neveket.

Ezen kapcsoló elállítása a 0 állapotból kis hatékonyság-visszaeséssel jár ugyan, de mindenképp gyorsabb lesz így, mintha mi magunk tennénk meg ezen kis-nagybetű átalakításainkat a PHP szkriptjeinkben.

Tartalom
sqlite_array_query -- Végrehajt egy SQL kérés az adott adatbázison, az eredményt tömbben visszaadva
sqlite_busy_timeout -- Beállítja a várakozási időtúllépés értékét, vagy a várakozás nélküli üzemmódot
sqlite_changes --  A legutóbb végrehajtott SQL kérés által módisult sorok számát adja meg
sqlite_close -- Egy megnyitott SQLite adatbázist lezár
sqlite_column -- Az eredménylista aktuális sorából egyetlen oszlop kiolvasása
sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements
sqlite_create_function --  Felhasználó által definiált SQL függvény regisztrálása
sqlite_current -- Kinyeri az eredménylista aktuális sorát, tömbként visszaadva azt
sqlite_error_string -- A megadott hibakód szöveges magyarázatával tér vissza
sqlite_escape_string -- Escapes a string for use as a query parameter
sqlite_exec --  Eredmény nélküli (adatmódosító) kérések futtatása adott adatbázison
sqlite_factory --  Megnyit egy SQLite adatbázist és létrehoz egy objektumot neki
sqlite_fetch_all --  Többdimentzós tömbbe gyűjti a teljes eredménylistát
sqlite_fetch_array -- Az eredménylista következő elemét nyeri ki tömbként
sqlite_fetch_column_types --  Egy adott tábla mezőneveit adja vissza
sqlite_fetch_object --  Az eredménylista soron kövezlető elemét nyeri ki adatobjektumként
sqlite_fetch_single -- Az eredménylista aktuális sorának első oszlopát sztringként kinyeri
sqlite_fetch_string -- Az sqlite_fetch_single() egy álneve
sqlite_field_name -- A megadott oszlop nevét adja vissza
sqlite_has_more -- Megállapítja, van-e még adat az eredménylistában
sqlite_has_prev -- Megállapítja, van-e az aktuálisat megelőző adatsor az eredménylistában
sqlite_key -- Returns the current row index
sqlite_last_error -- A megadott adatbázissal kapcsolatos legutóbbi hiba kódját adja vissza
sqlite_last_insert_rowid -- A legutóbbi beszúrt sorhoz rendelt automatikusan növekvő azonosító értékét adja vissza
sqlite_libencoding -- Returns the encoding of the linked SQLite library
sqlite_libversion -- A felhaszált SQLite függvénykönyvtár változatszámát adja meg
sqlite_next -- A következő eredménysorra léptet
sqlite_num_fields -- A megadott eredményazonosító által képviselt eredménylista mezőinek számát adja meg
sqlite_num_rows -- Az eredménylista sorainak számát adja vissza
sqlite_open -- SQLite adatbázis megyitása, még nem létező adatbázis létrehozása
sqlite_popen --  Opens a persistent handle to an SQLite database and create the database if it does not exist
sqlite_prev -- Az előző eredménysorra léptet
sqlite_query --  A megadott adatbázison lekérést hajt végre, visszaadva az eredménylista hivatkozást
sqlite_rewind -- Visszatekeri a mutatót az eredménylista elejére
sqlite_seek -- A pufferelt eredményazonosító adott sorára helyezi annak mutatóját.
sqlite_single_query --  Végrehajtja az SQL kérést, tömbként visszaadva az eredménylista első sorát
sqlite_udf_decode_binary -- Decode binary data passed as parameters to an UDF
sqlite_udf_encode_binary -- Encode binary data before returning it from an UDF
sqlite_unbuffered_query -- A megadott adatbázison lekérést hajt végre, az eredménylistát előre ki nem nyerve
sqlite_valid -- Returns whether more rows are available