Merhaba,
Bu anlatımımda PHP‘nin veri tabanı bağlantısı noktasında OOP ile Proje geliştirirken olmazsa olmazı PDO‘nun kullanımını ve yararlarını anlatacağım.
PDO bir veritabanı motorudur en büyük yararlarından biriside Örneğin PHP & MySql veri tabanı ile bir proje geliştirdiniz ve daha sonra bunu oracle veya db2 ye çevirmek istiyorsunuz eğer standart kodlarla yazdıysanız projenin her noktasında sorgu çağırma yapısı değişecektir fakat PDO kullanırsanız sadece bağlandı kodunuzu düzenlemek yeterli olacaktır umarım anlatabilmişimdir. PDO veritabanı bağlantını ve veritabanı işlemlerize bir standart getirir.Şimdi kullanımına bir göz atalım.
PHP & PDO ile Mysql Connection :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php try{ // Burada PDO nesnemizi yaratıyoruz ve içerisine sırasıyla; // Veritabanı Adı, Host, KullanıcıAdı ve Şifremizi yazıyoruz. $db = new PDO("mysql:dbname=test;host=localhost","root",""); echo"PDO ile mysql'e bağlanıldı !"; } catch(PDOException $e) { // Eğer bağlantı gerçekleşmez ise catch'e düşüyor ve // İlgili hatamesajını ekranda görüntülüyor. echo $e->getMessage(); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php // PDO ile yukarıdaki şekilde bağlantımızı açtıktan sonra, // PDO ile veri çekerken 2 farklı şekilde çekme işlemi yapabiliriz. $sql="SELECT * FROM table"; // Sorgumuz // Bunlardan 1.si Klasik olarak mysql_fetch_array şeklinde kullanımı // Aynı şeklin PDO da kullanımı aşağıdaki şekildedir. $Tbl = $db->query($sql)->fetch(); ECHO $Tbl['row']; // Bunlardan 2.si ise foreach ile kullanımı.Bu da döngü içerisinde // Tablodaki tüm verileri çekmemizi sağlar. foreach($db->query($sql) as $row) { echo $row['id'].' : '.$row['name'].' '; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?php // Tansaction ile ilgili olarak mysql de normal kullanımına ve // işlevleriyle ilgili bir makale yazmıştım o yüzden yeniden // anlatmıyorum // Transaction başlangıcı $db->beginTransaction(); // 1. ve 2. Sql Sorgumuz ki ben bunu transaction kullanımının yararını // Göstermek adına 2 adet sorgu kümesi oluşturdum. // fark ederseniz insert işlemi yapılan tablolar aynı fakat 2. sorguda // bir adet alan eksik bu durumda 1. si olumlu olsa bile 2.si olumsuz // olduğu için 1. işlemde geri alınacaktır. $Ekle = $db->exec("INSERT INTO zones VALUES ('', '1', '2', '999')"); $Ekle2 = $db->exec("INSERT INTO zones VALUES ('', '1', '2')"); // if metodumuz eğer 2 si de olumluysa if($Ekle and $Ekle2) { // Ekrana başarılı yaz. ECHO "başarılı"; } else { // Eğer 1 tanesi veya ikiside olumsuz ise ekrana Başarısız yaz. ECHO "Başarısız"; // ve yapılan tüm işlemi geri çek. $db->rollBack(); } } catch(PDOException $e) { // Eğer sql bağlantısı sağlanamaz ise catche düşer ve aşağıda ilgili // hata mesajı ekrana basılır. echo $e->getMessage(); } ?> |
Bu kadar emek çektik Mysql komutlarını öğrendik, şimdi çıkardılar birde PDO Mysqlİ , bu işler insan oyalamaktan ve kafa karıştırmaktan başka bir şey değil , madem baştan neden bu komutları koymadınız…
öyledir