SQLite
kavramı birçok kişi için pek de eski bir ifade sayılmaz. SQLite 2000’li
yılların henüz başlarında Richard Hipp
tarafından geliştirilmiştir. C programlama dili ile üretilmiş, sunucusuz
çalışabilen ve tamamen işlemsel bir veritabanıdır.
Açık kaynak kod platformu dahilinde en çok dağıtılan yazılımlardan biridir. Bunun en büyük sebepleri oldukça hızlı ve kullanımının basitçe olmasıdır. Konsol üzerinden bile SQL kabul edebilmektedir. PHP ile etkileşim hikayesi ise PHP 5.0 ‘dan itibaren başlamıştır. Hız ve performans olarak oldukça etkili olan SQLite, MYSQL ya da POSTGRESQL veritabanlarından daha hızlı olması açısından da büyük önem taşımaktadır. Veri depolama kapasitesi yadsınamaz. 2 TB -> 2048 GB veri depolayabilmektedir. Bugün çok büyük şirketler SQLite yazılımını kullanmaktadırlar. Google, Sun, Mozilla, Apple ve Adobe gibi kuruluşlar bunlara birer örnek olarak gösterilebilir.
Açık kaynak kod platformu dahilinde en çok dağıtılan yazılımlardan biridir. Bunun en büyük sebepleri oldukça hızlı ve kullanımının basitçe olmasıdır. Konsol üzerinden bile SQL kabul edebilmektedir. PHP ile etkileşim hikayesi ise PHP 5.0 ‘dan itibaren başlamıştır. Hız ve performans olarak oldukça etkili olan SQLite, MYSQL ya da POSTGRESQL veritabanlarından daha hızlı olması açısından da büyük önem taşımaktadır. Veri depolama kapasitesi yadsınamaz. 2 TB -> 2048 GB veri depolayabilmektedir. Bugün çok büyük şirketler SQLite yazılımını kullanmaktadırlar. Google, Sun, Mozilla, Apple ve Adobe gibi kuruluşlar bunlara birer örnek olarak gösterilebilir.
Ayrıca
SQLite, Birçok programlama dili ile de uyumlu olması açısından oldukça önemli
bir veritabanı yazılımı olarak kabul edilmektedir. PHP, ASP, BASIC, C, C++, C#,
JAVA, VISUAL BASIC, DELPHI, R, PERL ve PYHTON gibi programlama dilleri buna
örnek gösterilebilmektedir.
SQLite Yapılandırması
Bu
yazılımı kullanabilmek için öncelikle sqlite.org
sitesine girip, download bölümünden SQLite yazılımını bilgisayarınıza indirmeniz
gerekmektedir. İndirilen .zip formatlı dosya içerisinde bulunan sqlite3.exe tarzında bir program
çalıştırılıp konsol görüntüsü elde edilmesi SQLite kullanımına başladığınızı gösterecektir.
SQLite veritabanı ekran çıktısı |
SQLite Üzerinde İşlem Yapmak
SQLite
üzerinde işlem yapabilmek, aslında SQL ile işlem yapmakla eş değerdir. Nitekim
yapılan işlemler bilinen SQL işlemlerinden başka bir şey değildir. Veritabanı
içerisinde tablo oluşturmak, veri eklemek, silmek, güncellemek ve görüntülemek
işlemleri SQLite ile tamamen SQL uygulanarak yapılabilecek basit işlemler
olarak nitelendirilebilmektedirler.
SQL
konusunda, veritabanı üzerinde bir tablo oluşturma işlemini hatırlayabiliriz.
Aynı işlemler aynı şekilde, fakat bu sefer SQLite üzerinde gerçekleşmektedir.
SQLite ile veritabanında bir tablo oluşturmak |
Görüldüğü
gibi CREATE TABLE ile veritabanında rehber adında bir tablo oluşturduk. id,
isim ve telefon sütunları tasarladık. Daha sonra yaptığımız işlemi teyid etmek
amacıyla SQLite konsol satırına .tables
yazdık. SQLite komutlarından biri olan .tables, veritabanı içerisinde bulunan
tabloların listesini veren bir komuttur. SQLite bunun gibi birçok komuta sahiptir.
SQLite konsol satırına .help yazılıp
enter tuşuna basıldığında, karşımıza bu komutlar ve işlevleri dizilecektir.
SQLite komutları - .help ekran görüntüsü |
Bazı SQLite
Komutları
SQLite
Komutu
|
İşlevi
|
.tables
|
Veritabanı içerisinde bulunan tabloları
listeler.
|
.databases
|
Veritabanlarını listeler.
|
.exit
|
SQLite konsol kapama işlemini
gerçekleştirir.
|
.help
|
Yardım almak için mesaj sayfası açar.
|
.dump
|
Veritabanını dışarı aktarır.
|
.output filename
|
Veritabanında bulunan verileri .sql
formatlı dosya haline getirmeye yarar. Depolama işlevi görür.
|
Veritabanı'na
şekildeki gibi eklenen rehber tablosuna veri ekleyelim ve bu eklenilen verileri ekrana yazdıralım.
rehber tablosuna veri ekleme ve ekrana yazdırma |
Yukarıda görüldüğü gibi, id numarası 1 ve 2 olan isim, Gökhan Satman ve Mehmet Akif
Birkan olan, telefonu 111 ve 222 olan iki veri, rehber tablosuna
eklenmiştir. Sonra ise SELECT deyimi ile ekrana yazdırılmıştır. Buraya kadar
veritabanında tablo oluşturma, tabloya veri ekleme, ekrana yazdırma gibi
işlemler yaptık. Güncelleme ve silme işlemleri de bunları muhtemel takip edecek
işlemlerdir. Hatırladığınız gibi silme işlemi DELETE, güncelleme işlemi ise
UPDATE ile yapılmaktaydı.
rehber tablosundan veri silme ve veri güncelleme |
Ekran çıktısı dikkatlice incelendiğinde, id numarası 2 olan verinin silindiği, id
numarası 1 olan verinin ise isim sütununun güncellendiği görülecektir.
PHP ile SQLite Uyumu
PHP
ile SQLite arasında bir uyum sorunu yaşanıyorsa, kullanılmakta olan PHP
versiyonu muhtemelen 5.0 ’dan önceki bir versiyondur. Çünkü SQLite eklentisi
PHP 5.0 versiyonundan itibaren ön tanımlı olarak etkin olmuştur.
Kullandığınız
PHP versiyonunun, SQLite ile ilişkilendirilmiş olup olmadığını phpinfo() ile
anlayabileceğinizi, daha önceki konulardan hareketle anlamak pek de zor
olmayacaktır. Zira phpinfo(); olarak
hazırlanan phpinfo.php sayfası
kullanılmakta olan PHP versiyonu ile ilgili tüm gerekli bilgiyi ekranda listeleyecektir.
phpinfo.php
<?php
phpinfo();
?>
phpinfo.php sayfası ve SQLite ile uyum incelemesi |
PHP ile SQLite Bağlantısı :
sqlite_open()
PHP,
geniş kütüphanesi sayesinde bir çok yazılım ile iç içe çalışabilmektedir.
Bunlardan biri de hiç şüphe yok ki SQLite veritabanı motorudur. MYSQL ile
oldukça benzerlik gösteren fonksiyonları ile biz programcıları hiç de
zorlamayacak bir alt yapıya sahiptir.
MYSQL ile SQLite fonksiyonlarının karşılıkları
MYSQL
Fonksiyonu
|
SQLite
Fonksiyonu
|
mysql_connect
|
sqlite_open
|
mysql_query
|
sqlite_query
|
mysql_fetch_array
|
sqlite_fetch_array
|
mysql_fetch_row
|
sqlite_fetch_array
|
mysql_close
|
sqlite_close
|
mysql_num_rows
|
sqlite_num_rows
|
mysql_insert_id
|
sqlite_last_insert_rowid
|
MYSQL
veritabanı ile SQLite arasındaki benzerlik doğal olarak veritabanı bağlantısı
benzerliğine de yansımıştır. Zira mysql_connect()
fonksiyonu ile sqlite_open()
fonksiyonu benzer bir görev ve parametre topluluğu içermektedir.
PHP ile
SQLite veritabanı bağlantısı
sqlite_open(
bağlanılacak dosya, izin kipi, hata
mesajı )
Yukarıdaki
fonksiyon parametreleri incelendiğinde, bağlanılacak
dosyanın (dosya.db) bir veritabanı, izin
kipinin dosyaya erişim izin kipi olduğu ve hata mesajının da adından anlaşılacağı gibi bir hata mesajı olduğu
söylenebilmektedir. İzin kipi 0666 sekizlik chmod değeri olarak ön tanımlıdır.
Hata mesajı ise manuel bir değerdir.
sqlite_open()
fonksiyonu ve parametreleri
$dosya
= "c:/phpservisi.com/dosya.db";
$hata
= "Bağlantı tanımlanamadı.";
sqlite_open($dosya,
0666, $hata);
SQLite
konsol üzerinden tablo oluşturmak ya da diğer SQL işlemlerinin diğer veritabanı
programlarındaki işlemler ile aynı olduğunu artık biliyoruz. Burada önemli olan
konu, PHP ile bağlantının sağlanabilmesidir.
SQLite
ile PHP
<?php
$baglan
= sqlite_open("veritabanı adı", 0666, $hata_mesaj)
or
die ("Bağlantı Sağlanamadı!");
$tablo_olustur
= "CREATE TABLE rehber (
id
integer primary key,
isim
text not null,
telefon
text not null
);";
$tablo_olustur_sonuc
= sqlite_query($baglan, $tablo_olustur);
veri_gir1
= "INSERT INTO rehber(isim,telefon) values('Gökhan Satman','111' );";
veri_gir2
= "INSERT INTO rehber(isim,telefon) values('Mehmet Akif Birkan','222' );";
$veri_gir1_sonuc
= sqlite_query($baglan, $veri_gir1);
$veri_gir2_sonuc
= sqlite_query($baglan, $veri_gir2);
$veriler
= sqlite_query($baglan, "SELECT * FROM rehber LIMIT 5");
while($listele
= sqlite_fetch_array($veriler)) {
$id = $listele["id"];
$isim = $listele["isim"];
$telefon = $listele["telefon"];
echo "$id , $isim, $telefon";
}
?>
Yukarıda,
daha önce de değinilen, SQLite bağlantısının yapılması işlemi
gerçekleştirilmektedir. Bağlantının olumsuz olduğu durumda hata mesajı
gösterilecektir.
$tablo_olustur =
"CREATE TABLE rehber (
id integer primary key,
isim text not null,
telefon text not null
);";
$tablo_olustur_sonuc =
sqlite_query($baglan, $tablo_olustur);
Yukarıda
bulunan satırlar rehber isimli yeni bir tablo oluşturma işlemini
gerçekleştirmektedir. mysql_query()
fonksiyonu ile özdeş bir işlev gören sqlite_query()
fonksiyonu sorguları PHP sunucuya göndermektedir.
Oluşturulan
rehber isimli tablo, id, isim ve telefon sütunlarından oluşmaktadır.
veri_gir1 = "INSERT
INTO rehber(isim,telefon) values('Gökhan Satman','111' );";
veri_gir2 = "INSERT
INTO rehber(isim,telefon) values('Mehmet Akif Birkan','222' );";
$veri_gir1_sonuc =
sqlite_query($baglan, $veri_gir1);
$veri_gir2_sonuc =
sqlite_query($baglan, $veri_gir2);
Daha
önce oluşturulan rehber tablosu içerisine veri girişi dinamik olarak yapılmaktadır.
$veriler =
sqlite_query($baglan, "SELECT * FROM rehber LIMIT 5");
while($listele =
sqlite_fetch_array($veriler)) {
$id = $listele["id"];
$isim = $listele["isim"];
$telefon = $listele["telefon"];
echo "$id , $isim, $telefon";
}
MYSQL
ile PHP konusunda değinilen veri listeleme işlemi, herhangi bir döngü
aracılığıyla çekilen verilerin çağırılması ve ekrana echo fonksiyonu ile yazdırılması şeklinde bir süreç ile
tamamlanmaktadır. MYSQL veritabanında mysql_fetch_array()
fonksiyonu ile yapılan sorgulama işleme SQLite veritabanı motorunda sqlite_fetch_array() fonksiyonu ile
tanımlanmıştır.
Bir sonraki yazıda görüşmek üzere!
PHP Parse error: syntax error, unexpected '=' \index.php on line 13
YanıtlaSilWindows IIS 7 kullanıyorum ve bu hatayı alıyorum nasıl düzeltebilirim?
eğer bir değişken tanımlıyorsanız "=" değişkenin içeriğini kontrol edecekseniz ==, !=, <=, >= gibi kullanmalısınız
YanıtlaSil