PHP Velho Oeste 2024

sqlite_open

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_openBir SQLite veritabanı için bir tanıtıcı açar, veritabanı mevcut değilse oluşturur

Açıklama

sqlite_open ( string $dosya [, int $kip = 0666 [, string &$hata_iletisi ]] ) : resource

Nesne yönelimli kullanım (kurucu):

__construct ( string $dosya [, int $kip = 0666 [, string &$hata_iletisi ]] )

Bir SQLite veritabanı dosyası için bir tanıtıcı açar, veritabanı mevcut değilse oluşturur.

Değiştirgeler

dosya

SQLite veritabanı dosyasının ismi. Böyle bir dosya yoksa SQLite oluşturmaya çalışır. Dosyaya veri yazılacaksa, veritabanı şeması değiştirilecekse veya mevcut olmayan veritabanı oluşturulacaksa PHP'nin dosya yazma izninin olması gerekir.

kip

Dosyaya erişim kipi. Hali hazırda bu değiştirge SQLite kütüphanesi tarafından yok sayılmaktadır. 0666 sekizlik değeri öntanımlı olup önerilen değerdir.

hata_iletisi

Bir hata oluştuğunda veritabanının açılamama sebebini açıklayan ileti bu değiştirgeye konur.

Dönen Değerler

Bir hata durumunda FALSE yoksa bir özkaynak (veritabanı tanıtıcısı) döner.

Örnekler

Örnek 1 - sqlite_open() örneği

<?php
if ($db sqlite_open('mysqlitedb'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);
}
?>

Notlar

İpucu

Unix platformlarında, SQLite fork() sistem çağrısını kullanan betiklere duyarlıdır. Böyle bir betiğiniz varsa çatallama öncesi tanıtıcıyı kapatıp çocuk ve ebeveyn süreçte yeniden açmanız önerilir. bu konuda daha ayrıntılı bilgi edinmek için » SQLite kütüphanesinin C dili arayüzü belgesinin Multi-Threading And SQLite (Çok Evrelilik ve SQLite) bölümüne bakınız.

İpucu

NFS bölümlerinde bulunan SQLite veritabanları ile çalışmanız önerilmez. NFS kilitlenmesi ile ünlü olduğundan kendinizi veritabanına erişemez durumda bulabilirsiniz. Dosya erişilebilir olsa bile kilitlenme davranışının bir açıklaması olmayabilir.

Bilginize: SQLite kütüphanesinin 2.8.2 sürümünden itibaren, bilgisayarın sadece belleğinde varolabilen bir veritabanı oluşturmak için dosya değiştirgesinde :memory: dizgesini belirtebilirsiniz. Süreç sonlandığında bellekteki veritabanı yok edildiğinden geçici işlemler için oldukça yararlıdır. Ayrıca, başka veritabanlarını yüklemek ve bunlar arasında veri hareketleri ve sorguları yapmak için ATTACH DATABASE SQL deyiminin kullanıldığı durumlarda da yararlıdır.

Bilginize: SQLite safe_mode ve open_basedir'a duyarlıdır.

Ayrıca Bakınız

  • sqlite_popen() - Bir SQLite veritabanı için kalıcı bir tanıtıcı açar, veritabanı mevcut değilse oluşturur
  • sqlite_close() - Açık bir SQLite veritabanını kapatır
  • sqlite_factory() - Bir SQLite veritabanı açıp bir SQLiteDatabase nesnesi döndürür

add a note add a note

User Contributed Notes 3 notes

up
4
Anonymous
17 years ago
the above example dows not! work since sqlite_query() does not accept one argument, but only 2.

so correct is:

<?php
if ($db = sqlite_open('mysqlitedb', 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);
}
?>
up
0
Phillip Berndt
17 years ago
If you miss to set the permissions mentioned by ivoras Sqlite will drop an error message saying "Malformed database scheme", which is somehow misleading.

(I mentioned this as some [I did] might search php.net for this error message)
up
-8
Simon
7 years ago
If you are using PHP7 or up, use PDO instead. this seems to be outdated since newer than 5.4
To Top