Forum und email

sqlite_open

(PHP 5, PECL sqlite:1.0-1.0.3)

sqlite_open — SQLite adatbázis megyitása, még nem létező adatbázis létrehozása

Leírás

resource sqlite_open ( string $filename [, int $mode [, string &$error_message ]] )

Siker esetén egy adatbázis azonosítót ad vissza, a kudarcot egy FALSE visszatérési értékkel jelzi.

A filename paraméter adja meg az adatbázis nevét. A fájlnév elérési útját relatív és abszolút módon is meg lehet adni. Ha megadott fájl nem létezik, az SQLite megrpróbálja létrehozni azt. ELENGEDHETETLEN, hogy a megfelelő írási jogok meglegyenek az adott fájlra, ha abba adatokat akarsz illeszteni, ill. módosítani (törölni) akarod azokat.

A mode paraméterben adható meg a fájlmegnyitás módja, amely által a jövőben csak olvasható módban is megnyitható egy adatbázis fájl. Jelen pillanatban az SQLite kiterjesztés figyelmen kívül hagyja ezt a paramétert, csupán a helye van meghagyva. Ha meg akarod adni a harmadik errmessage paramétert, ezt is szükséged lesz odatenni, ekkor annak alapértelmezését, a 0666 értéket érdemes odatenni a jövőbeni kompatibilitási hibák elkerülése érdekében.

Az errmessage paraméter referenciaként adja vissza annak szöveges magyarázatát, miért is nem sikerült megnyitni az adatbázist, már ha ez az eset áll fent.

Example#1 sqlite_open() példa

<?php
if ($db sqlite_open('elso_sqlite_adatbazisom'0666$sqliteerror)) { 
    
sqlite_query($db'CREATE TABLE foo (bar varchar(10))');
    
sqlite_query($db"INSERT INTO foo VALUES ('fnord')");
    
$result sqlite_query($db'SELECT bar FROM foo');
    
var_dump(sqlite_fetch_array($result)); 
} else {
    die(
$sqliteerror);
}
?>

Tip

Unix rendszereken az SQLite érzékeny az olyan szkriptekre, amelyek alkalmazzák a fork() rendszerhívást. Ha ilyen alkalmazást építesz, fontos, hogy a forkolás előtt zárd le az adatbázisod, és a gyermek/szülő szkriptben nyisd meg újfent. A dologgal kapcsolatban többet olvashatsz a » C nyelvi interfész az SQLite függvényönyvtárhoz dokumentumban, annak is a Multi-Threading és az SQLite szekciójában.

Tip

Nem igazán javallott NFS-el beemelt fájlrendszeren használni az adatbázisokat. Ennek oka, hogy az NFS fájlrendszer nem túl erős az állományok zárolásának kezelésében. Nem minden esetben fogod tudni megnyitni az adatbázisod, és ha mégis sikerülne, előfordulhat, hogy a fájlod zároltsága nem lesz megállapítható.

Note: Az SQLite 2.8.2-es változatától kezdődően a filename paraméterben megadható a speciális jelentéssel bíró :memory: érték is. Ekkor az adatbázis nem jön létre a fájlrendszerben, csupán a memóriában fog létezni. Ez átmeneti adatbázis haszálat esetén hasznos, mivel a memóriában tárolt adatbázisok a szkirpt lefutásával megszűnnek. Szintén igen hasznos ezt a lehetőséget az ATTACH DATABASE SQL paranccsal együttesen használni más adatbázisok betöltésére és köztük adatmásolások, lekérések kieszközlésére hsználni.

Note: Az SQLite kiterjesztés a safe mode és az open_basedir beállításoknak megfelelően jár el.

Lásd még: sqlite_popen(), sqlite_close() és sqlite_query().