PHP artık yeni sürümleri ile birlikte mysql_ desteğini tamamen sonlandırdı mysql_ sorguları yerine artık mysqli_ veya PDO kullanılmak zorundadır, mysqli_ ile PDO arasında seçim yapmanız gerekse ve yeni bir projeye başlıyorsak tercih etmemiz gerek yapı PDO olmalıdır , PDO, mysqli_ ye göre 2x daha hızlı işlem gerçekleştirir ve daha güvenlidir.
mysqli_ ile işlem gerçekleştirirken tüm güvenlik önlemlerini sizin sağlamanız gerekir yani mysqli_ ile yapılan sorgular sql injection için koruma sağlamaz ve bu koruma işlemlerini veri tarama ve veri güvenliğini tamamen sizin sağlamanız gerekir. PDO kendi yapısında bu tarz güvenlik önlemlerini kendi sağlar ve sizin ekstra düşünmenizi gerektirmez.
PDO nun diğer bir artısı ise PDO iç yapısında bilinen tüm veritabanı yapılarını tanır ve aynı şekilde kullanımınıza olanak sağlar ancak tabi doğal olarak tüm veritabanlarının sql sorgu yapıları farklıdır ve siz programınızı güncellemek yerine sadece SQL sorgularını değiştirerek kolaylıkla veritabanı geçişi sağlayabilirsiniz.
PDO ile MYSQL bağlantı işlemi;
try { $db = new PDO("mysql:host=localhost;dbname=db_adi;charset=utf8", "db_kadi", "db_sifre"); } catch ( PDOException $e ){ print $e->getMessage(); }
MySQL bağlantı işleminizi farklı bir dosyada gerçekleştirin ve veritabanı kullanacağınız her dosyanızda tekrar import edin.
PDO ile Veri Kaydetme (PDO İle insert işlemleri);
$sorgu = $db ->; prepare("INSERT INTO `tablo_adi`(`sutun1`, `sutun2`, `sutun3`, `sutun4`) VALUES (:sutun1_degeri,:sutun2_degeri,:sutun3_degeri,:sutun4_degeri)"); $sorgu ->; execute(array( ':sutun1_degeri'=>'PHP', ':sutun2_degeri' => 'Yazılım', ':sutun3_degeri' => 'PDO', ':sutun4_degeri' => 'INSERT' ));
prepare() nesnesi parametre olarak aldığı SQL komut parametrelerini hazır hale getirir,
exec() nesnesi parametre olarak aldığı SQL komutlarını çalıştırır ve dönüş olarak işlenen komut sayısını geri döndürür
PDO ile Delete İşlemleri (PDO ile veritabanından değer satır silme);
$sonuc = $baglanti->;exec("delete * from kayitlar where id=12");
PDO ile silme işleminin aynısını güncelleme (update) işlemi içinde gerçekleştirebiliriz sql sorgusu içerisine update sorgusunu değiştirerek işlem gerçekleştirebiliriz,
PDO ile Veri Çekme işlemleri (PDO ile fetch assoc)
$db = $baglanti->prepare("select * from kayitlar"); $db->;execute(); while ($veri = $db->fetch(PDO::FETCH_ASSOC)) { echo $veri['id']; }
yukarıdaki gibi işlem gerçekleştirmemiz durumunda kayıtlar sonlanana kadar while döngüsü devam edecektir, eğer tek bir beri çekmek istiyorsak bu sorguyu while içerisinden çıkartmamız yeterli olacaktır ;
$sor = $db->query("select * from kayitlar where id=1"); $veri = $sor->fetch(PDO::FETCH_ASSOC); echo $veri['id'];