SQLite - PHP
Bu bölümde SQLite'ı PHP programlarında nasıl kullanacağınızı öğreneceksiniz.
Kurulum
SQLite3 uzantısı PHP 5.3.0'dan itibaren varsayılan olarak etkindir. Kullanarak devre dışı bırakmak mümkündür--without-sqlite3 derleme zamanında.
Windows kullanıcıları bu uzantıyı kullanmak için php_sqlite3.dll'yi etkinleştirmelidir. Bu DLL, PHP 5.3.0'dan itibaren PHP'nin Windows dağıtımlarına dahil edilmiştir.
Ayrıntılı kurulum talimatları için lütfen PHP eğitimimize ve resmi web sitesine bakın.
PHP Arayüzü API'leri
Aşağıda, PHP programınızdan SQLite veritabanıyla çalışma gereksinimlerinizi karşılayabilecek önemli PHP rutinleri verilmiştir. Daha sofistike bir uygulama arıyorsanız, PHP resmi belgelerine bakabilirsiniz.
Sr.No. | API ve Açıklama |
---|---|
1 | public void SQLite3::open ( filename, flags, encryption_key ) SQLite 3 Veritabanını açar. Yapı şifreleme içeriyorsa, anahtarı kullanmaya çalışacaktır. Eğer dosya adı olarak verilir':memory:'SQLite3 :: open (), RAM'de yalnızca oturum süresince süren bir bellek içi veritabanı oluşturacaktır. Dosya adı gerçek aygıt dosyası adıysa, SQLite3 :: open (), değerini kullanarak veritabanı dosyasını açmaya çalışır. Bu isimde bir dosya yoksa, o isimde yeni bir veritabanı dosyası oluşturulur. SQLite veritabanının nasıl açılacağını belirlemek için kullanılan isteğe bağlı bayraklar. Varsayılan olarak, open SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE. |
2 | public bool SQLite3::exec ( string $query ) Bu rutin, birden fazla SQL komutundan oluşabilen sql argümanı tarafından sağlanan SQL komutlarını yürütmenin hızlı ve kolay bir yolunu sağlar. Bu rutin, belirli bir veritabanına karşı sonuçsuz bir sorgu yürütmek için kullanılır. |
3 | public SQLite3Result SQLite3::query ( string $query ) Bu rutin bir SQL sorgusu yürütür ve bir SQLite3Result Sorgu sonuçları döndürürse nesne. |
4 | public int SQLite3::lastErrorCode ( void ) Bu rutin, en son başarısız olan SQLite isteğinin sayısal sonuç kodunu döndürür. |
5 | public string SQLite3::lastErrorMsg ( void ) Bu rutin, en son başarısız olan SQLite isteğini açıklayan İngilizce metin döndürür. |
6 | public int SQLite3::changes ( void ) Bu rutin, en son SQL deyimi tarafından güncellenen, eklenen veya silinen veritabanı satırlarının sayısını döndürür. |
7 | public bool SQLite3::close ( void ) Bu rutin, daha önce bir SQLite3 :: open () çağrısı ile açılmış olan bir veritabanı bağlantısını kapatır. |
8 | public string SQLite3::escapeString ( string $value ) Bu yordam, bir SQL deyimine güvenli bir şekilde dahil edilmesi için uygun şekilde öncelenmiş bir dize döndürür. |
Veritabanına Bağlan
Aşağıdaki PHP kodu, mevcut bir veritabanına nasıl bağlanılacağını gösterir. Veritabanı yoksa, o zaman oluşturulur ve son olarak bir veritabanı nesnesi döndürülür.
<?php
class MyDB extends SQLite3 {
function __construct() {
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
?>
Şimdi, veritabanımızı oluşturmak için yukarıdaki programı çalıştıralım. test.dbmevcut dizinde. Yolunuzu ihtiyacınıza göre değiştirebilirsiniz. Veritabanı başarıyla oluşturulursa, aşağıdaki mesajı görüntüler -
Open database successfully
Tablo Oluşturun
Aşağıdaki PHP programı önceden oluşturulmuş veri tabanında bir tablo oluşturmak için kullanılacaktır.
<?php
class MyDB extends SQLite3 {
function __construct() {
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);
EOF;
$ret = $db->exec($sql);
if(!$ret){
echo $db->lastErrorMsg();
} else {
echo "Table created successfully\n";
}
$db->close();
?>
Yukarıdaki program yürütüldüğünde, bilgisayarınızda ŞİRKET tablosunu oluşturacaktır. test.db ve aşağıdaki mesajları gösterecektir -
Opened database successfully
Table created successfully
INSERT İşlemi
Aşağıdaki PHP programı, yukarıdaki örnekte oluşturulan COMPANY tablosunda kayıtların nasıl oluşturulacağını gösterir.
<?php
class MyDB extends SQLite3 {
function __construct() {
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
$ret = $db->exec($sql);
if(!$ret) {
echo $db->lastErrorMsg();
} else {
echo "Records created successfully\n";
}
$db->close();
?>
Yukarıdaki program çalıştırıldığında, FİRMA tablosunda verilen kayıtları oluşturacak ve aşağıdaki iki satırı görüntüleyecektir.
Opened database successfully
Records created successfully
SELECT İşlemi
Aşağıdaki PHP programı, yukarıdaki örnekte oluşturulan COMPANY tablosundaki kayıtların nasıl alınacağını ve görüntüleneceğini gösterir -
<?php
class MyDB extends SQLite3 {
function __construct() {
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
SELECT * from COMPANY;
EOF;
$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ) {
echo "ID = ". $row['ID'] . "\n";
echo "NAME = ". $row['NAME'] ."\n";
echo "ADDRESS = ". $row['ADDRESS'] ."\n";
echo "SALARY = ".$row['SALARY'] ."\n\n";
}
echo "Operation done successfully\n";
$db->close();
?>
Yukarıdaki program yürütüldüğünde, aşağıdaki sonucu verecektir.
Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000
Operation done successfully
GÜNCELLEME İşlemi
Aşağıdaki PHP kodu, herhangi bir kaydı güncellemek için UPDATE ifadesinin nasıl kullanılacağını ve ardından güncellenmiş kayıtları COMPANY tablosundan alıp görüntülemeyi gösterir.
<?php
class MyDB extends SQLite3 {
function __construct() {
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
$ret = $db->exec($sql);
if(!$ret) {
echo $db->lastErrorMsg();
} else {
echo $db->changes(), " Record updated successfully\n";
}
$sql =<<<EOF
SELECT * from COMPANY;
EOF;
$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ) {
echo "ID = ". $row['ID'] . "\n";
echo "NAME = ". $row['NAME'] ."\n";
echo "ADDRESS = ". $row['ADDRESS'] ."\n";
echo "SALARY = ".$row['SALARY'] ."\n\n";
}
echo "Operation done successfully\n";
$db->close();
?>
Yukarıdaki program yürütüldüğünde, aşağıdaki sonucu verecektir.
Opened database successfully
1 Record updated successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000
Operation done successfully
DELETE İşlemi
Aşağıdaki PHP kodu, herhangi bir kaydı silmek için DELETE ifadesinin nasıl kullanılacağını ve sonra kalan kayıtları COMPANY tablosundan alıp görüntülemeyi gösterir.
<?php
class MyDB extends SQLite3 {
function __construct() {
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
DELETE from COMPANY where ID = 2;
EOF;
$ret = $db->exec($sql);
if(!$ret){
echo $db->lastErrorMsg();
} else {
echo $db->changes(), " Record deleted successfully\n";
}
$sql =<<<EOF
SELECT * from COMPANY;
EOF;
$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ) {
echo "ID = ". $row['ID'] . "\n";
echo "NAME = ". $row['NAME'] ."\n";
echo "ADDRESS = ". $row['ADDRESS'] ."\n";
echo "SALARY = ".$row['SALARY'] ."\n\n";
}
echo "Operation done successfully\n";
$db->close();
?>
Yukarıdaki program yürütüldüğünde, aşağıdaki sonucu verecektir.
Opened database successfully
1 Record deleted successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000
Operation done successfully