| Anasayfam Yap | Arkadaşına Tavsiye Et | Reklam |


Kategoriler




En Çok Takip Edilenler




En Son Eklenenler



        

PHP ve SQLITE Kullanımı


SQLITE Nedir ?

Sqlite içine sql database motoru yerleştirilmiş bir c kütüphanesidir, 2000 yılında D. Richard Hipp tarafından başlatılmıştır tarafından geliştirilmiş tir, tamamen olmasa da SQL92 standardını kullanır ve 5. versiyonla birlikte php ile kullanılmaya başlanmıştır, dosya yapısına benzer bir veritabanı mantığıdır, bir arabirim gerektirmeden php'den gönderilecek sqllite_open fonksiyonu ile eğer yoksa veritabanı ilk kullanımda yaratılır, mysq ve PostgreSQL den 2-3 kat hızlı çalışabilir, 2TB kadar veri saklanabilir , oluşturduğunuz veritabanı belirttiğiniz adresteki tek bir dosyadan ibaret olduğu için olaylıkla taşınabilir hızlı çalışşması önemli olan her yerde kullanılabilir. Şimdi sqllite kullanarak bir örnek yapalım

ÖRNEK SCRIPT :

SQL Lite ı php ile kullanabilmeniz için önceden tanımlanmış pek çok fonksiyon ve sınıfa internetten erişmeniz mümkün pear kütüphanesinde de sqlite için bağlantı sınıfları var ama ben bu yazıda temel php sqlite kütüphanesinde fonksiyonlar ile basit bir kayıt uygulaması yapacağım , böylece diğer veritabanlarına alışık olanlar sqlite ile çalışmanın mysql e ne kadar benzediğini henüz herhangi bir veritabanı ile çalışmamış olanlar ise sqlite ın ne kadar basit ve kullanışlı olduğunu görebilirler.

PHP:
  1. $dbhandle = sqlite_open('db');

sqlite_open() fonksiyonu yeni bir veritabanı oluşturmaya veya daha önceden oluşturulmuş bir sqllite veritabanına bağlanmaya yarar. Fonksiyonda gönderilen parametre oluşturulacak olan veritabanının adıdır, bu fonksiyon ilk çalıştığında fonksiyonun ilk parametresinde gönderilen dizinde yada herhangi bir dizin belirtilmemiş ise fonksiyonun çalıştırıldığı dosyanın yanında belirtilen isimde bir dosya oluşur bu dosya bizim veritabanımızın kendisidir, sqlite ın taşınma kolaylığı da buradan gelir. bu dosyayı farklı herhangi bir yere taşıyıp yedekleyebilir yeniden kullanabilir yada dosyaya erişebilen ve sqlite ı destekleyen herhangi bir dil ile bu veritabanına bağlanabilirsiniz.

Tabi öncelikle üzerinde çalışacağımız tabloyu oluşturmamız gerekiyor

SQL:
  1. CREATE TABLE test (
  2.  
  3.            id INTEGER NOT NULL PRIMARY KEY,
  4.  
  5.            text VARCHAR ( 255 ) NOT NULL)

test tablomuz id ve text isimli iki alandan oluşuyor , bu sorguyu sqlite_query() fonksiyonu ile veritabanımıza yollayıp tablomuzun oluşmasını sağlıyorum, bu işlemler için mysql için kullandığımız phpmyadmin benzeri bir yazılım olan sqlitemaneger isimli ide kurup kullanbilirsiniz.

sqlite_query() : sql sorgularımızı sqlite veritabanına göndermek için kullandığımız fonksiyon.

Php de genellikle kullandığınız veritabanı bağlantılarını kapatmak gerekli olmaz fakat bağlantıyı kesmek istediğinizde kullanacağınız sqlite_close() fonksiyonudur.

Öncelikle

PHP:
  1. if($_POST["text"]){
  2.  
  3. $sonuc= sqlite_query($dbhandle, "INSERT INTO test ( id , text ) VALUES ( NULL , '$_POST[text]' ) ");
  4.  
  5. }

Tablomuzu oluşturduktan sonra kodumuzu yazmaya başlıyoruz öncelikle eğer sayfaya post metodu ile text değişkeni yollanmışsa veritabanına kayıt yapacak kısmı hazırlıyoruz.

PHP:
  1. if($_GET["sil"]){
  2.  
  3. $sonuc= sqlite_query($dbhandle, "DELETE  FROM test WHERE id='$_GET[sil]' ");
  4.  
  5. }

daha sonra eğer girdiğimiz kayıtlardan birini silmemiz gerekirse kullanacağımız GET değeri ile gelen id'deki kaydı silmeye yarayan satırı hazırlıyoruz

PHP:
  1. $result = sqlite_array_query($dbhandle, 'SELECT * FROM test LIMIT 25');
  2.  
  3. foreach ($result as $entry) {
  4.  
  5.    echo 'Id:'. $entry['id'] .' &nbsp;&nbsp; Name: ' . $entry['text'] ." &nbsp;<a href=\" index.php?sil=$entry[id]\">[sil]</a> <br />";
  6.  
  7. }

son olarak ta tablomuzdaki tüm kayıtların listelenmesi için kullanılacak satırı hazırlıyoruz, sonuçları diziye atmamızı sağlayan sqlite_array_query() fonksiyonu zaten mysql kullanıcılarının mysql_fetch_array() dan dolayı hiç yabancı gelmeyecektir.

HTML:
  1. <form METHOD=POST ACTION="">
  2.  
  3. <input TYPE="text" NAME="text"/>
  4.  
  5. </form>

son olarak da tabloya kaydedilmek için yeni kayıt gönderecek olan u hazırlıyoruz.

Ve işlemi bitiriyoruz J

Görüldüğü gibi sqlite fonksiyonlrı ve kullanımı mysql ile oldukça benzemektedir, aşağıdaki tabloda mysql de sıklıkla kullandığımız fonksiyonların sqlite deki karşılıklarını bulabilirsiniz.

mysql_connect( ) sqlite_connect( )

mysql_close( ) sqlite_close( )

mysql_query( ) sqlite_query( )

mysql_fetch_row( ) sqlite_fetch_array( )

mysql_fetch_assoc( ) sqlite_fetch_array( )

mysql_num_rows( ) sqlite_num_rows( )

mysql_insert_id( ) sqlite_last_insert_rowid( )

mysql_real_escape_string( ) sqlite_escape_string( )

Bu tip bir uygulama kullandığınızda dan gelen verileri doğrudan veritabanına yazdırdığımız için bazı güvenlik açıkları oluşabilir, örnekte kullamadığımız ama veritabanına herhangi bir dan gelen verileri kaydederken zararlı kodları temizlemek için kullanacağımız fonksiyon sqlite_escape_string( ) fonksiyonudur, eğer bu fonksiyonu yukardaki örneğe uyarlamak istseydik

PHP:
  1. $_POST[text]=sqlite_escape_string( $_POST[text]);

Bu örnek kodda bazı ifadeler eksik olabilir örneğin bu tip lardan aldığınız bilgileri veritabanına kaydederken $username = sqlite_escape_string($username); fonksiyonun kullanmanız gerekir.

Kaynak kodların açıklamalardan ayrıştırılıp derli toplu hali de burada.

PHP:
  1. <?php
  2.  
  3. /*Tablo yapısı :
  4. CREATE TABLE test (
  5.            id INTEGER NOT NULL PRIMARY KEY,
  6.            text VARCHAR ( 255 ) NOT NULL
  7.            )
  8.    
  9. */
  10.  
  11. if($_POST["text"]){
  12.  
  13. $sonuc= sqlite_query($dbhandle, "INSERT INTO test ( id , text ) VALUES ( NULL , '$_POST[text]' ) ");
  14.  
  15. }
  16.  
  17. if($_GET["sil"]){
  18.  
  19. $sonuc= sqlite_query($dbhandle, "DELETE  FROM test WHERE id='$_GET[sil]' ");
  20.  
  21. }
  22.  
  23. $result = sqlite_array_query($dbhandle, 'SELECT * FROM test LIMIT 25');
  24.  
  25. foreach ($result as $entry) {
  26.  
  27. echo 'Id:'. $entry['id'] .' &nbsp;&nbsp; Name: ' . $entry['text'] ." &nbsp;<a href=\"index.php?sil=$entry[id]\">[sil] <br />";
  28.  
  29. }
  30.  
  31. ?>
  32.  
  33. <form METHOD=POST ACTION="">
  34.  
  35. <input TYPE="text" NAME="text"/>
  36.  
  37. </form>

Yazar: Meteryus





Yorumlar
Yorum yazılmamış.
 
Yorum Yap:
      

Adınız &  Nickiniz:

Yorumunuz     :

 

Güvenlik Kodu :