Merhaba arkadaşlar,

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: