PDO sisteminde veri ekleme-çekme-güncelleme gibi işlemleri satır satır yazmaktansa tek satırda fonksiyonu çağırarak bu işlemi kolaylaştırıyoruz.
Öncelikle PDO bağlantısı ;
header('Content-Type: text/html; charset=utf-8'); $k_id = "username"; // veritabanı kullanıcı adı - database username $k_pass = "password"; // veritabanı kullanıcı şifresi - database password $k_host = "localhost"; // sunucu - host $k_db = "database"; // veritabanı adı - database name try { $db = new PDO("mysql:host={$k_host};dbname={$k_db};charset=utf8", $k_id, $k_pass); // veritabanından veri çekerken türkçe sorunlarını düzeltmek için utf-8e dönüştürüyoruz $db->exec("SET NAMES 'utf8';"); $db->exec("SET CHARSET 'utf8;'"); } catch ( PDOException $e ){ // die($e->getMessage()); // bağlantı sağlanamıyorsa bu satırı aktif ederek sorunu öğreniyoruz die("DATABASE NOT FOUND!"); // veya hata çıktımızı veriyoruz }
PDO ile Veri Çekme (Tek)
function veriCek($tablo, $alanlar, $sutun, $id) { global $db; $veri = $db->query("SELECT {$alanlar} FROM {$tablo} WHERE {$sutun} = '{$id}'")->fetch(PDO::FETCH_ASSOC); return $veri; } // Fonksiyonu kullanımı $tekbirkullanici = veriCek("users", "*", "id", "1"); // Burada dedik ki, "users" tablosunda ki "id" sutununda değerini "1" olan veriyi çek. // Bu verininde "*" diyerek tüm bilgilerine ulaşmak olduk. "*" yerine "sütunadı" yazarsanız sadece bu değeri/sütunda ki veriyi çekecektir.
PDO ile Tablo Çekme (Toplu)
function tabloCek($tablo, $alanlar, $manuel) { global $db; $veri = $db->query("SELECT {$alanlar} FROM {$tablo} {$manuel}", PDO::FETCH_ASSOC); return $veri; } // Fonksiyon kullanımı $kullanicilar = tabloCek("users", "*", "ORDER BY id DESC"); // Burada dedik ki, "users" tablosunda ki tüm verileri çek. "ORDER BY id DESC" diyerekte manuel komut girdik. // Yani "id" değerine göre tersten bir sıralama yapacaktır. // Aynı şekilde "*" dediğimiz bölüm ise tüm sütunların değerini çekmek için
PDO ile Veri Silme
function veriSil($tablo, $sutun, $id) { global $db; $query = $db->prepare("DELETE FROM {$tablo} WHERE {$sutun} = :edc"); $delete = $query->execute(array( 'edc' => $id )); } // Fonksiyon Kullanımı $kullaniciyiSil = veriSil("users", "id", "1"); // Burada dedik ki, "users" tablosunda "id" değeri "1" olanı sil. // Sadece bu kadar..
PDO ile Veri Ekleme
function veriEkle($sutunlar, $veriler, $tablo) { global $db; $other = array(); $sorgu = ""; $count = count($veriler); $a = 0; for($i = 0; $i < $count; $i++) { $a++; if($a == $count) $sorgu .= $sutunlar[$i]." = ?"; else $sorgu .= $sutunlar[$i]." = ?,"; } $query = $db->prepare("INSERT INTO {$tablo} SET {$sorgu}"); $insert = $query->execute($veriler); if ( $insert ) return true; else return false; } // Fonksiyon Kullanımı // 2 Yolu vardır (Benim en tercih ettiğim) $sutunlar = array("kullaniciadi", "password"); $cevaplar = array("edcsmile", "şifre123"); $kullaniciEkle = veriEkle($sutunlar, $cevaplar, "users"); Veya $kullaniciEkle = veriEkle(array("kullaniciadi", "password"), array("edcsmile", "şifre123"), "users"); // Burada dedik ki, "$sutunlar" olarak belirttiğimiz dizi veritabanında ki sütunların isimleri // "$cevaplar" olarak belirttiğimiz dizi de sırasıyla dizilere elemanları yerleştirdik. // Ve fonksiyonu çağırıp belirlediğimiz tabloya bu veriyi ekledik.
PDO ile Veri Güncelleme
function veriGuncelle($sutunlar, $veriler, $tablo, $hedef, $no) { global $db; $other = array(); $sorgu = ""; $a = 0; $count = count($veriler); for($i = 0; $i < $count; $i++) { $a++; if($a == $count) $sorgu .= $sutunlar[$i]." = :a_".$sutunlar[$i]; else $sorgu .= $sutunlar[$i]." = :a_".$sutunlar[$i].","; } $b = 0; foreach( $sutunlar as $sutun ) { $other["a_".$sutun] = $veriler[$b]; $b++; } $other["no"] = $no; $query = $db->prepare("UPDATE {$tablo} SET {$sorgu} WHERE {$hedef} = :no"); $update = $query->execute($other); if ( $update ) return true; else return false; } // Fonksiyon kullanımı $sutunlar = array("username", "password"); $cevaplar = array("edcsmile2", "123şifre"); // buranın açıklaması ; // username (sütun) > edcsmile2 (değer) // password (sütun) > 123şifre (değer) $kullaniciGuncelle = veriGuncelle($sutunlar, $cevaplar, "users", "id", "1"); // Users tablosunda ki "id" sutunundan değeri "1" olana oluşturduğumuz dizide ki verileri hedeflerine göre güncelledik. // Veri ekleme fonksiyonuyla aynı şekilde tek farkı, ek olarak hedef ve hedefin değerini belirledik. // etkilenekcek sütunlar // sütunlara değerler // tablo, hedef, değer // işlem sadece bu kadar..
TÜM Sorgu cümlesini kullanmak isteyenler içinde
// tablo için bu function tabloCMD($sorgu) { global $db; $veri = $db->query($sorgu, PDO::FETCH_ASSOC); return $veri; } // tekil için bu function veriCMD($sorgu) { global $db; $veri = $db->query($sorgu)->fetch(PDO::FETCH_ASSOC); return $veri; } // genel function cmd($sorgu) { global $db; $veri = $db->query($sorgu); return $veri; } $sorgu = cmd("TÜM SORGU CÜMLESİ");
Aklınıza takılan soruları yorum olarak yazabilirsiniz.
Yorum Yap ;