downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 13 Nov 2009

view this page in

sqlite_open

(PHP 5, 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

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

Nesne yönelimli kullanım (kurucu):

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

Bir SQLite veritabanı dosya sı 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



sqlite_popen> <sqlite_num_rows
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
sqlite_open
simplersolution at gmail dot com
07-Dec-2007 02:46
I found that both the file and the directory it is in have to be writeable by the web server, or an ambiguous "unable to open database file" error appears (pecl 1.0.3).  I pulled my hair out for ages before I realised that.
Phillip Berndt
02-Mar-2007 02:52
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)
15-Nov-2006 10:45
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);
}
?>
ivoras at fer dot hr
26-May-2004 05:46
Since sqlite uses a journal to do updates and inserts (and creates it on the fly), you ALSO must have write permissions set for the web server to write in the same DIRECTORY as the database file.

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites