Aşağıdaki sınıf oldukça basit ve kullanışlı. Hemen göstereyim:
BasitPDO.php
<?php
/**
* Basit bir veritabanı sınıfı
* Sorguları çalıştırır
* PDO ile fetch, fetchAll, fetchColumn ... gibi metodlar
* zincirleme çalıştırılabilir ve kullanılabilir.
*
* @link http://demirphp.com
* @author Yılmaz Demir <demiriy@gmail.com>
*/
class BasitPDO
{
/**
* PDO sınıfını tutar
* @var void
*/
public static $pdo;
/**
* PDO bağlantısını kurar
* @param void $pdo
*/
public function __construct(\PDO $pdo)
{
self::$pdo = $pdo;
}
/**
* Sorgu çalıştırır
* @param string $query
* @return void
*/
public static function query($query)
{
if (!self::$pdo instanceof \PDO) {
throw new \Exception('PDO bağlantısı yapılmamış');
}
$stmt = self::$pdo->prepare($query);
$args = array_slice(func_get_args(), 1);
if (isset($args[0]) && is_array($args[0])) {
$stmt->execute($args[0]);
} else {
$stmt->execute($args);
}
return $stmt;
}
}Yukarıdaki dosyayı kaydedelim. Öncelikle veritabanı ayarını yapalım.Connection.php
<?php
$pdo = new \PDO('mysql:host=localhost;dbname=database;charset=utf8', 'kullaniciadi', 'sifre');
$basit_pdo = new BasitPDO($pdo);Ne yapmak istiyorsunuz? Veritabanından bir tek gönderi mi birden fazla gönderi mi çekmek istiyorsunuz? Bütün haberleri çekelim:Haberler.php
require 'Connection.php';
$haberler = BasitPDO::query('SELECT * FROM haberler WHERE onaylanmis=?', 'evet')->fetchAll();
foreach ($haberler as $key => $haber) {
echo $haber['baslik'] . '<br>';
}Haber.php?id=5require 'Connection.php';
$id = $_GET['id'];
$haber = BasitPDO::query('SELECT * FROM haberler WHERE id=?', $id)->fetch();
echo $haber['baslik'];HaberSayisi.phprequire 'Connection.php';
$haberSayisi = BasitPDO::query('SELECT * FROM haberler')->rowCount();
// ya da
$haberSayisi = BasitPDO::query('SELECT COUNT(id) FROM haberler')->fetchColumn();
echo $haberSayisi;Ekleme/Düzenleme/Silmerequire 'Connection.php';
$ekle = BasitPDO::query('INSERT INTO haberler (baslik, icerik) VALUES (:baslik, :icerik)', [':baslik' => 'Başlık', ':icerik' => 'İçerik']);
$duzenle BasitPDO::query('UPDATE haberler SET baslik=:baslik WHERE id=:id', [':baslik' => 'Yeni Başlık', ':id' => $_GET['id']]);
$sil = BasitPDO::query('DELETE FROM haberler WHERE id=?', $_GET['id']);Bu işin onlarca farklı tekniği, kullanım biçimi vs. vardır. Bu sadece bir tanesi. Umarım işinize yarar. Sorularınızı sormaktan çekinmeyin.
