"Enter"a basıp içeriğe geçin

Veritabanı Kütüphanesi

PHPXI dahili basit ve etkili bir veritabanı kütüphanesine sahiptir ve bu kütüphane geliştirilmeye devam etmektedir. Eğer PHPXI’de veritabanına nasıl bağlanacağınızı bilmiyorsanız öncelikle Veritabanı Bağlantısı bölümünü inceleyin.

MySQLi – PDO Ortak Metotları

Select İşlemi

Her şeyi seçmek;

$db->select("*");

Sadece belli sütunları seçmek; (örneğin sutun ve kolon isimli sütunları seçmek için)

$db->select("sutun, kolon");

ya da

$db->select("sutun");
$db->select("kolon");

ve ya

$db->select("sutun")->select("kolon");

Tablo adıyla birlikte seçmek için;

$db->select("tabloadi.sutun");

Dikkat : Tablo adı ve sütun adı nokta (.) ile ayrılmalıdır.

Select işleminde Atama (AS);

$db->select("tabloadi.sutun as yenisutun");

FROM İşlemi

$db->from("tabloadi");

WHERE İşlemi

$db->where("sutun", "value");

Not: Üçüncü parametre belirtilmezse “=” çalışır.

Like ve Not Like için;

$db->where("sutun", "%value%", "like");
$db->where("sutun", "%value%", "not like");

IN için;

$db->where("sutun", "1,2,3", "in");

ve ya

$db->where("sutun", ["1", "2", "3"], "in);

NOT IN için;

$db->where("sutun", "1,2,3", "not in");

ve ya

$db->where("sutun", ["1","2","3"], "not in");

BETWEEN için;

$db->where("sutun", array("10", "50"), "between");
//WHERE `sutun` BETWEEN 10 AND 50

NOT BETWEEN için;

$db->where("sutun", array("10", "50"), "not between");
//WHERE `sutun` NOT BETWEEN 10 AND 50

<=, <, >, >= gibi kullanımlar için;

$db->where("sutun", "5", "<="); //Küçük eşit
$db->where("sutun", "5", "<"); //Küçük
$db->where("sutun", "5", ">"); //Büyük
$db->where("sutun", "5", ">="); //Büyük eşit

WHERE OR ve AND

Aldıkları parametre ve kullanım şekilleri where ile aynı ancak farklı sql sorguları oluşturmayı sağlayan iki temel fonksiyon daha vardır.

$db->or_where("sutun", "value");
$db->and_where("sutun", "value")

Önemli : Üçüncü parametre olarak where fonksiyonunun aldığı parametreleri alabilirler, belirtilmezse “=” çalışır.


HAVING İşlemi

İlk parametre olarak sütun adı, ikinci parametre olarak veri ve üçüncü parametre olarak operatör belirtilir. Operatör belirtilmezse varsayılan olarak “=” çalışır.

$db->having("sutun", "value");

GROUP BY

$db->group_by("group_name");

ORDER BY

$db->order_by("sutun", "asc");

Belli bir tablodaki belli bir sutuna göre listeleme yapılacaksa üçüncü parametre olarak tablo adı verilir. Varsayılan olarak db->from ya da db->join ile kendisinden önce seçilen son tabloyu alır.

$db->order_by("sutun", "desc", "tablo_adi");

LIMIT

SQL sorgularını limitlemek için kullanılır.

$db->limit("1");

ve ya

$db->limit("5, 10");

JOIN

$db->join("join_tablosu");

ile tablo sorguya dahil edilir. Sorguya dahil edilen tablonun bir sütunu, sorguda yer alan bir tablonun bir sütunu ile eşleştirilmelidir. Bu işlem için join_where kullanılır.

$db->join_where("join_tablosu", "join_sutunu", "from_tablosu", "from_sutunu");

Böylece join_tablosu isimli tabloda bulunan join_sutunu ile from_tablosu isimli tablodaki from_sutunu eşit olmak şartı eklemiş olduk.


GET

GET oluşan SQL sorgularını sunucuya gönderir ve sunucunun verdiği cevabı döndürür.

$db->get("tablo_adi");

ya da

$db->from("tablo_adi")->get();

şeklinde çalıştığında SQL sunucusuna gönderilecek sorgu şu şekildedir;

SELECT * FROM tablo_adi

select, from, join, where, having, order_by, limit gibi fonksiyonlar kullanılarak sorgu şekillendirilebilir. Basit bir örnek aşağıdaki gibidir;

$db->select("sutun")->from("tablo")->where("sutun", "1")->limit("1")->get();

Bunun döndüreceği çalıştıracağı sorgu aşağıdaki şekildedir;

SELECT sutun FROM tablo WHERE sutun = '1' LIMIT 1

QUERY

Kendi SQL sorgunuzu elle yazıp çalıştırmak istiyorsanız query fonksiyonunu aşağıdakine benzer şekilde kullanabilirsiniz.

$sql = $db->query("SELECT * FROM tabloadi WHERE 1 LIMIT 0, 10");

Bu işlem PHP’nin MySQLI (ya da PDO) sınıfındaki query ile aynı şeyi döndürür. Kullanımı bire bir aynıdır.


NUM_ROWS

Kendisinden önce en son yapılan get() ya da query() işleminden etkilenen satır sayısını döndürür.

$db->num_rows();

Query_Size

Kendisinden önce kaç SQL sorgusunun çalıştığı bilgisini döndürür.

$db->query_size();

ROWS

Kendisinden önce yapılan query ya da get sonuçlarına ait sonuçları (çoğul) nesne olarak döndürür. Aşağıdakine benzer bir kullanımı vardır.

$db->from("tablo")->get();

foreach($this->rows() as $row){
echo $row->sutun_adi;
}

ROW

Kendisinden önce yapılan query ya da get sorgularına sonuçlarını ait sonucu (tekil) nesne olarak döndürür.

$db->from("tablo")->get();
$row = $this->row();
echo $row->sutun_adi;

INSERT

Veritabanına veri yazdırmak için kullanılan fonksiyondur.

$data = array(
"sutunadi" => "sutun value",
"kolonadi" => "kolon value"
);
$db->from("tabloadi")->insert($data);

Öncesinde from fonksiyonu ile işlemin hangi tabloda yapılacağı seçilmelidir. Ya da işlem yapılacak tablo adı ikinci parametre olarak verilir.

$data = array(
"sutunadi" => "sutun value",
"kolonadi" => "kolon value"
);
$db->insert($data, "tabloadi");

İşlem başarılı olursa true, başarısız olursa false döndürür.


INSERT_ID

Kendisinden önceki insert işlemi bir insert id döndürdüyse bu insert id’yi döndürür.

$this->db->insert_id();

UPDATE

Veritabanında güncelleme işlemi yapmak için kullanılan fonksiyondur.

$data = array(
"sutunadi" => "sutunda yeni veri",
"kolonadi" => "kolonda yeni veri"
);
$this->db->from("tabloadi")->where("ID", "5")->update($data);

Öncesinde from ile hangi tabloda işlem yapılacağı belirtilmelidir. Ya da tablo adı ikinci parametre olarak belirtilmelidir.

$data = array(
"sutunadi" => "sutunda yeni veri",
"kolonadi" => "kolonda yeni veri"
);
$db->where("ID", "5")->update($data, "tabloadi");

Dikkat : where metodu ile hangi verilerin güncelleneceği seçilmezse tüm tabloda güncelleme işlemi yapılır.

İşlem başarılı olursa true, başarısız olursa false döndürür.


DELETE

Silme işlemi yapmak için kullanılır.

$db->from("tabloadi")->where("ID", "5")->delete();

Dikkat : Kendisinden önce from metodu ile tablo adı belirtilmelidir. Kendisinden önce where ile hangi verilerin silineceği belirtilmelidir. Ya da birinci parametre olarak where bilgilerini ikinci parametre olarak tablo adı verilebilir.

Dikkat : Hangi verilerin silineceği (where) belirtilmezse tüm tablo içeriğini silecektir.

Aşağıda verilen tüm satırlar bire bir aynı SQL sorgusunu çalıştırır.

$db->from("tabloadi")->delete(["ID"=>"5"]);
$db->where("ID", "5")->delete([], "tabloadi");
$db->delete(["ID" => "5"], "tabloadi");

Başarılı olursa true, başarısız olursa false döndürür.


DROP

Bir tabloyu verileriyle birlikte kaldırmaya/silmeye yarar.

$db->drop("tabloadi");

ya da

$db->from("tabloadi")->drop();

Başarılı olursa true, başarısız olursa false döndürür.


TRUNCATE

Bir tablo içeriğini boşaltmak için kullanılır.

$db->truncate("tabloadi");

ve ya

$db->from("tabloadi")->truncate();

Başarılı olursa true, başarısız olursa false döndürür.

Maintenance

Bağlantı bilgilerinde önek (prefix) belirtilmiş ise sadece aynı öneki kullanan, belirtilmemiş ise veri tabanı içerisindeki tüm tablolara bakım işlemlerini (Check, Analyze, Repair ve Optimize) yapar.

$db->maintenance();

Bir şey döndürmez ya da çıktı üretmez. İşlem detaylarını /PHPXI/WEIGHT/Logs/ dizininde sistem (system) günlüğüne (log) yazar.

MySQLi – PDO Farklı Metotları

Exec

Not : Bu metot PDO kütüphanesi özeldir. Standart PDO içerisindeki exec() metodu ile aynı işi yapar.

$db->exec("SELECT * FROM tablo");

Gerçek PDO ve MySQLi Sınıfına Ulaşmak

Dahili olarak sunulan özelliklerin haricinde PHP tarafından sunulan tüm PDO/MySQLI sınıfına da $pdo ya da $mysqli özelliklerinden (property) ulaşabilirsiniz.

$db->mysqli->query("SELECT * FROM tabloadi");
//OR
$db->pdo->query("SELECT * FROM tabloadi");