Bu aralar önceden yapmış olduğum projeleri github platformunda paylaştığım için farkettim ki önceden yazmış olduğum fonksiyonları bu güzel forumda paylaşmak istedim. Fonksiyonları özetçe anlatmak gerekirse, PDO sisteminde veri ekleme-çekme-güncelleme vesayre gibi işlemleri satır satır yazmaktansa tek satırda fonksiyonu çağırarak bu işlemi kolaylaşlaştırıyoruz.
Haydi fonksiyonlara geçelim ;
Ö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..
Şimdilik bu kadar.. :rolleyes: Umarım yeni arkadaşlar ve PDO sistemine geçmeyi düşünen kişiler için faydalı olur..
İyi forumlar, iyi kodlamalar :rolleyes: