CIII. 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 -- Execute a query against a given database and returns an array.
sqlite_busy_timeout -- Set busy timeout duration, or disable busy handlers.
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 -- Fetches a column from the current row of a result set.
sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements.
sqlite_create_function --  Registers a "regular" User Defined Function for use in SQL statements.
sqlite_current -- Fetches the current row from a result set as an array.
sqlite_error_string -- A megadott hibakód szöveges magyarázata
sqlite_escape_string -- Escapes a string for use as a query parameter
sqlite_exec --  Executes a result-less query against a given database.
sqlite_factory --  Opens a SQLite database and creates an object for it
sqlite_fetch_all --  Fetches all rows from a result set as an array of arrays
sqlite_fetch_array -- Fetches the next row from a result set as an array.
sqlite_fetch_column_types --  Return an array of column types from a particular table.
sqlite_fetch_object --  Fetches the next row from a result set as an object
sqlite_fetch_single -- Fetches the first column of a result set as a string.
sqlite_fetch_string -- Alias of sqlite_fetch_single()
sqlite_field_name -- Returns the name of a particular field.
sqlite_has_more -- Returns whether or not more rows are available.
sqlite_last_error -- Returns the error code of the last error for a database.
sqlite_last_insert_rowid -- Returns the rowid of the most recently inserted row.
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. Will create the database if it does not exist.
sqlite_query --  Executes a query against a given database and returns a result handle.
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 --  Executes a query and returns either an array for one single column or the value of the first row
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 -- Execute a query that does not prefetch and buffer all data