1 Ekim 2013 Salı

PDO Ders2 - Veri tabanına Bağlanmak Ve veritabanında İşlem yapmak

Diğer Dersimizde PDO Nedir açıklamıştık Pdo Nedir Bilmeyen Arkadaşlarımız PDO Ders1 - PHP Data Objects (PDO) Nedir Adlı Makalemizi İnceleyebilirler.

PDO ile Veritabanına Bağlanmak

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
Evet Arkadaşlar $dbh = new PDO ile yeni bir veritabanı bağlantısı oluşturduk Şimdi Veritabanında Oluşacak Bağlantı Hatalarımızı Kontrol Edelim
<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>
Evet Arkadaşlar Burdada getMessage Bize Veritabanımızın Bağlantısında Hata Varsa onları Gösteriyor Böylece Bağlantımızın Yapılıp yapılmadığını görebiliyoruz.

PDO ile Açılan Bağlantıyı kapatma

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// burada bağlantıyı kullanıyoruz


// İşimiz bittiğine göre bağlantıyı kapatabiliriz.
$dbh = null;
?>
Yukarıda Gördüğünüz Gibi Arkadaşlar İşlemlerimizi Yaptıktan Sonra $dbh değişkenimize null değeri vererek bağlantımızı sonlandırabiliriz

PDO ile Yeni bir kayıt eklemek

Yeni bir kayıt eklemek için exec metodunu kullanacağız. Sonrasında eğer eklediğimiz satırın ID’sini almak istiyorsak lastInsertId metodunu çağıracağız. Eklerken bir sorun gerçekleşirse exec metodu false dönecektir. Bu nedenle öncelikle eklenip eklenmediği kontrol edip sonrasında ID’yi ekrana yazdırabiliriz.

if($db->exec('INSERT INTO users (name) VALUES ("blogger")'))
{
    $id = $db->lastInsertId();
    echo 'Yeni eklenen üyenin IDsi: ' . $id;
}
else
{
    echo 'Yeni kayıt eklerken bir hata meydana geldi.';
}

PDO ile sorgu göndermek

Eğer yapacağımız sorgudan bir sonuç almayı beklemiyorsak “exec“, bir sonuç isteniyorsa “query” metodlarını kullanmalıyız. Özetle; “DELETE/UPDATE/INSERT” gibi sorgularımız için “exec”, “SELECT” gibi sorgularımız için “query”.

try {
    $db = new PDO('mysql:host=localhost;dbname=test', $user, $password);
    $db->exec('SET NAMES `UTF-8`');
    $count = $db->exec('DELETE FROM messages WHERE old = 1');
    echo $count . ' messages deleted';
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

PDO ile Sorguları Geri Alabilme

BeginTransaction metodunu çalıştırdıktan sonra yazacağımız tüm ekleme, düzenleme ve silme sorguları normal kullandığımız şekilde çalışmaya devam eder. Eğer sorgular devam ederken tüm bu aralıktaki sorguları geri almak istersek rollBack metodunu çağırırız. Bu metodu çalıştırdığımızda beginTransaction’dan rollBack metoduna kadar yazdığımız tüm ekleme, düzenleme ve silme sorguları geri alınır.

// İşlemleri başlattığımızı ifade ediyoruz
$db->beginTransaction();
 
$db->exec('INSERT INTO users (name) VALUES ("Ahmet")');
$db->exec('UPDATE users SET name = "Ali"');
$db->exec('DELETE FROM users WHERE name = "Hasan"');
 
// Yaptığımız sorguları geri aldık
$db->rollBack();

Değişkenleri sorgulara dahil etmek

önce prepare metodu ile sorgumuzu hazırlayıp dışarıdan değerler vereceğimiz yerlere “?” (soru işareti) yerleştiriyoruz. Sonrasında hazırladığımızı sorguya execute metodu ile soru işareti olan yerlere gelecek değerlerimizi gönderiyoruz.

/ Sorgumuzu hazırlıyoruz
$query = $db->prepare('INSERT INTO users (name, email) VALUES(?, ?)');
 
// Sorguda belirttiğimiz yerlere gelecek değerleri veriyoruz
$query->execute(array('blogger', 'email@email.com));

PDO kullanırken tüm dışarıdan aldığımız değişkenleri sorgularımıza bu yöntem ile dahil etmemiz uygulamamızın güvenliği ve düzeni açısından çok önemlidir. Bu yöntem sayesinde SQL injection açıklarından da arınmış oluyoruz.

PDO ile verileri listelemek

Verileri Listelerken query methodunu kullanırız

foreach($db->query('SELECT * FROM users') as $row) {
    echo $row['name'] . '<br/>';
}

PDO ile bir satır veri çekmek

Bunun için PDO srgumuzdan Sonra fetch methodumuzu çağırırız

$row = $db->query('SELECT * FROM users WHERE id = 1')->fetch();
echo $row['name'];
Kaynak : www.phpr.org/php-data-objects-pdo/#more-1940
vehbi akdogan - kişisel blog sitesi

PDO Ders1 - PHP Data Objects (PDO) Nedir

Artık "mysql_connect", "mysql_query" fonksiyonlarının müfredattan kalkma zamanı geliyor, P H P'de kendi resmi dökümantasyonunda da bunun sinyalini vermeye başlamış; "mysql" fonksiyonlarının sayfasında aşağıdaki gibi bir öneriyle karşılaşıyoruz;

"This extension is not recommended for writing new code. Instead, either the mysqli or PDO_MySQL extension should be used. See also the MySQL API Overview for further help while choosing a MySQL API.”
Özetle artık bunları kullanmanızı önermiyoruz, PDO ya da MySQLi'ye geçin diyor. Peki nedir bunlar? adresindeki karşılaştırmaya baktığımızda MySQLi ile PDO arasında çok fark olmadığını görebilirsiniz.
PDO’da çoğu veritabanı sürücüsü kullanılmasına olanak sağlayan, MySQLi ise sadece MySQL destekleyen ve PDO’ya göre biraz daha karmaşık ve kapsamlı bir arayüz diyebiliriz. Sonuç olarak ikisi de öneriliyor. Ben burada PDO’dan bahsetmeye çalışacağım, iksinden birisinin kullanım şeklini kavradığınızda diğerini de rahatlıkla kullana bileceğinize inanıyorum.

PDO nedir?

PDO(PHP Data Objects / PHP Veri Objeleri) özetle; hafif ve tutarlı bir şekilde veritabanına erişimi sağlayan bir arayüz. Adından da anlayacağınız üzerie “Object Oriented Programming” arayüzüne sahip, onlarca veritabanı sürücüsü destekliyor;

  • Cubrid
  • FreeTDS / Microsoft SQL Server / Sybase
  • Firebird/Interbase 6
  • IBM DB2
  • IBM Informix Dynamic Server
  • MySQL 3.x/4.x/5.x
  • Oracle Call Interface
  • ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
  • PostgreSQL
  • SQLite 3 and SQLite 2
  • Microsoft SQL Server / SQL Azure

  • İleride daha farklı bir veritabanı sürücüsüne geçmek istediğinizde sisteminizi temelli olarak değiştirmek yerine PDO ile kaldığınız yerden bir takım ufak modifikasyonlar ile bu işi gerçekleştirebilirsiniz.
    Bunların haricinde PDO 5.1‘den itibaren geliyor, yani çalışabilmesi için güncel versiyonlara ihtiyacınız olacak.
    Kaynak : www.phpr.org/php-data-objects-pdo/#more-1940
    Arkadaşlar Bende Sizlere Mysql Yerine PDO yu Anlatacağım
    vehbi akdogan - kişisel blog sitesi

    10 Eylül 2013 Salı

    Php Ders 9 Php İle Veri Tabanında Bazı İşlemler

    Bu Dersimizin Sonunda Veri Tabanıyla İşlem Yapmayı Az Çok Öğrenmiş Olacaksınız
    bir Önceki Dersimiz Php Ders 8 Php İle Veri Tabanına Bağlanma Yı Okursanız Bu Dersimizi Daha İyi Anlarsınız


    Php İle Veri Tabanında İşlemler Yapmak


    Arkadaşlar Bu Dersimizi Örnek Üzerinde Anlatırsam Daha İyi Olacağını Düşünüyorum
    İlk Dersimizde Sizlere wamp Server i Kurmayı anlatmıştım bilmeyenler İçin Php Giriş Ve Wamp Server Kurulumu Başlıklı Konumuza Bakabilirsiniz.
    Şimdi Tarayıcımızda localhost/phpmyadmin Adresine Giriyoruz Ve Yeni Bir Veri Tabanı Oluşturuyoruz
    Direk Hostta işlem Yapan Arkadaşlarımızda Panellerinden Yeni Bir Veri Tabanı Oluşturabilirler

    Veri Tabanı Adına uyeler Yazıyoruz Ve Veri Tabanı Oluşturuyoruz
    Oluşturduğumuz Veri Tabanına Girince Hiç Tablo Yok Diyor Ve Biz Şimdi Bir tablo oluşturacağız
    Öncelikle Bizim Üyemizin Hangi Bilgileri Saklanacak Onlara Karar Vermeliyiz
    1- Adı
    2- Soyadı
    3- Dogum Tarihi
    4- Yaşadığı ŞEhir
    5- Cinsiyet
    6- Uye İd si
    Şimdi 6 Alanlı Bir Tablo oluşturuyoruz
    Evet Arkadaşlar Ben Veri Taanını oluşturdum Aşağıdaki SQL kodunu phpmyadminde Okutursanız Sizdede Uyeler adında Bir Tablo oluşacaktır
    SQL KODU :
    CREATE TABLE IF NOT EXISTS `uyeler` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `adi` text CHARACTER SET utf8 COLLATE utf8_turkish_ci NOT NULL,
      `soyadi` text CHARACTER SET utf8 COLLATE utf8_turkish_ci NOT NULL,
      `dogum_tarihi` text NOT NULL,
      `sehir` text NOT NULL,
      `cinsiyet` text NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
    

    Evet Arkadaşlar Elimizde uyeler Adında Bir Tablomuz var Ve tablomuzun 6 adet Sütunu Var
    Şimdi İşlemlerimize Geçelim
    Öncelikle index.php Adında Bir Sayfa Oluşturalım Ve içine Öncelikle mysql Bağlantımızı Yapalım
    
    <?php
    $kullaniciadi="root"; // Sizde Kullanıcı Adınızı Yazın
    $sifre= ""; // Mysql Şifrenizi Yazın
    $host="localhost"; // Mysql Hostunuzu Yazın 
    $veritabani="uyeler"; // Veritabanımızın Adı 
     
    // Veri Tabanına Bağlan 
    $baglan=mysql_connect($host,$kullaniciadi,$sifre);
    
    //VERİTABANI SEÇME
    
    mysql_select_db($veritabani,$baglan); // Veritabanımızı Seçtik 
    
    ?>
    

    Evet Arkadaşlar mysl bağlantımızı Yaptık Ve uyeler Adlı Veri Tabanımızı Seçtik
    Şimdi İlk olarak Veri Ekleme İle Başlayalım
    1 Adet Üye Ekleyelim
    <?php
    $kullaniciadi="root"; // Sizde Kullanıcı Adınızı Yazın
    $sifre= ""; // Mysql Şifrenizi Yazın
    $host="localhost"; // Mysql Hostunuzu Yazın 
    $veritabani="uyeler"; // Veritabanımızın Adı 
     
    // Veri Tabanına Bağlan 
    $baglan=mysql_connect($host,$kullaniciadi,$sifre);
    
    //VERİTABANI SEÇME
    
    mysql_select_db($veritabani,$baglan); // Veritabanımızı Seçtik 
    
    
    //VERİLER
    $isim = "Vehbi";
    $soyisim = "AKDOGAN";
    $dogum_tarihi = "01.01.1995";
    $sehir = "ERZURUM";
    $cinsiyet = "E";
    
     
    
    //YENİ KAYIT GİRME
    $sql="insert into uyeler (id, adi, soyadi, dogum_tarihi, sehir, cinsiyet) values ('', '$isim','$soyisim','$dogum_tarihi','$sehir','$cinsiyet')";
    mysql_query("$sql");
    ?>
    


    Evet Arkadaşlar Öncelikle isim Soyisim Gibi Değerleri tanımladık ardından Veri tabanımıza ekledik Php ile veritabanına Veri eklemek için
    insert into tablo Adı ( Veritabanındaki Sütunlar ) values(Sütunların Sayfamızdaki Değerleri );
    Şeklinde Yazarız
    Evet Şimdide Oluşturduğumuz Kaydı Ekrana Yazdıralım
    
    <?php
    $kullaniciadi="root"; // Sizde Kullanıcı Adınızı Yazın
    $sifre= ""; // Mysql Şifrenizi Yazın
    $host="localhost"; // Mysql Hostunuzu Yazın 
    $veritabani="uyeler"; // Veritabanımızın Adı 
     
    // Veri Tabanına Bağlan 
    $baglan=mysql_connect($host,$kullaniciadi,$sifre);
    
    //VERİTABANI SEÇME
    
    mysql_select_db($veritabani,$baglan); // Veritabanımızı Seçtik 
    
    
    //KAYITALRI EKRANA YAZMA
    $sql="select * from uyeler";
    $sorgu=mysql_query("$sql");
    while ($sonuc=mysql_fetch_array($sorgu)){
    echo "id = $sonuc[0]
    <br>İsim = $sonuc[1]
    <br>Soyisim = $sonuc[2]
    <br>Dogum Tarihi = $sonuc[3]
    <br>Sehir = $sonuc[4]
    <br>Cinsiyet = $sonuc[5]
    ";}
    ?>
    

    Evet Arkadaşlar Kayıtlarımızı Ekrana Yazdırırken mysl_fetch_array fonksiyonundan Yararlanırız Bu Fonksiyon Veritabanındaki Bilgileri Bir Diziye Atar
    mysql_select* from tablo_adi bu Fonksionumuz İse Tablomuzu Seçer

    Şimdide Kayıt Güncelleyelim
    
    <?php
    $kullaniciadi="root"; // Sizde Kullanıcı Adınızı Yazın
    $sifre= ""; // Mysql Şifrenizi Yazın
    $host="localhost"; // Mysql Hostunuzu Yazın 
    $veritabani="uyeler"; // Veritabanımızın Adı 
     
    // Veri Tabanına Bağlan 
    $baglan=mysql_connect($host,$kullaniciadi,$sifre);
    
    //VERİTABANI SEÇME
    
    mysql_select_db($veritabani,$baglan); // Veritabanımızı Seçtik 
    
    
    //KAYIT GÜNCELLEME
    $sql="update uyeler set adi='ahmet', soyadi='xxx' where adi='Vehbi' ";
    mysql_query("$sql");
    ?>
    


    Veri Tabanımızda Güncelleme Yapamak İçin Kullandığımız Fonksiyon "update tablo Adı set Düzenlenecek kısım='Yeni Değeri' where Duzenlenecek Kısım "; Burda kafanızı Belki where karıştırabilir arkadaşlar kısaca Bahsetmek Gerekirse where türkçe karşılığıda Nereye anlamına Geliyor bildiğiniz gibi
    Bizede Burada Diyor ki Ben Veritabanında nereyi Güncelleyeyim Bizde Diyoruz Ki adi Vehbi Olan Kısmı Düzelt
    Bu örneğimizde 1 tane veri olduğu için Ada Göre Güncellettik ama Çok üyesi olan sistemlerde id ye göre Düzenleme Yapılır
    Evet Arkadaşlar Son olarakta Bilgi Silmeyi Görüp Dersimizi Sonlandıracağız
    
    <?php
    $kullaniciadi="root"; // Sizde Kullanıcı Adınızı Yazın
    $sifre= ""; // Mysql Şifrenizi Yazın
    $host="localhost"; // Mysql Hostunuzu Yazın 
    $veritabani="uyeler"; // Veritabanımızın Adı 
     
    // Veri Tabanına Bağlan 
    $baglan=mysql_connect($host,$kullaniciadi,$sifre);
    
    //VERİTABANI SEÇME
    
    mysql_select_db($veritabani,$baglan); // Veritabanımızı Seçtik 
    
    
    //KAYIT SİLME
    $sql="delete from uyeler where id='1'";
    mysql_query("$sql");
    
    //BAĞLANTIYI KESME
    mysql_close($baglan);
    ?>
    


    mysql de bir Veriyi Silmek için "delete from Tablo Adı where = 'silinecek Yer'"
    Burda da Dedikki Bizim id si 1 olan ÜYemizi Sil Ve php myadminden Bakarsanız Silindiğini Göreceksiniz mysql_close() Bu Fonksiyonda Veri Tabanı Bağlantımızı Kapatmamızı Sağlar Veri Tabanını Kapatmassak Sistemimizde Büyük Bir Güvenlik Açığı oluşabilir

    ÖNEMLİ Açtığımız Tüm Tagları Kapattığımız Gibi Açtığımız Tüm mysql Bağlantılarınıda Kapatmayı Unutmayalım !!
    Birdahaki Dersimizde Görüşmek Üzere ...
    vehbi akdogan - kişisel blog sitesi

    9 Eylül 2013 Pazartesi

    Php Ders 8 Php İle Veri Tabanına Bağlanma

    Bu dersimizde Php İle Veritabanına Bağlanmayı Göreceğiz
    Bir Önceki Dersimiz olan Php Ders7 Hazır Fonksiyonlara Bakmanızı Tavsiye Ederiz


    Veri Tabanı Nedir


    Arkadaşlar Veritabanı Sitemizdeki Bilgilerimizi Düzenli Olarak Saklamamızı İstediğimiz Zaman İstediğimiz Şartlara Göre Bu bilgilere Ulaşmamızı Sağlar örneğin Sitemizdeki Üye Bilgilerini Veritabanında Saklayabiliriz
    Veri Tabanını Bir Tablodur , Veritabanındada Satırlar Ve Sütunlar Vardır

    mysql Nedir


    Mysql Bir Veritabanı Dilidir Arkadaşlar Bu Dile De ayrıca Değineceğiz
    Şimdilik mysql Kodlarını Verip php De nasıl Kullanacağımıza Bakacağız

    Php İle Veri Tabanına Bağlanmak


    <?php
    $kullaniciadi="root"; // Veritabanı Kullanıcı Adımız
    $sifre= "dbSifre"; // Veritabanı Şifremiz
    $host="localhost"; // mysql Hostumuzun Adı
    // Veri Tabanı Bilgilerimiz Yukarıda Şimdi 
    $baglan=mysql_connect($host,$kullaniciadi,$sifre); // Veri Tabanı Bağlantımızı Yapan Kodumuz
    if($baglan) // Bağlantı oldumu Diye Kontrol Ediyoruz
    echo"Veri Tabanına Bağlanıldı";
    else
    echo"Bağlantı Başarısız";
    ?>
    
    Kodlarımızı Zaten Açıkladık
    mysql_connect($host,$kullaniciadi,$sifre) Bu Kodumuz Bize Mysql Bağlantısı Yapar.
    BU Dersimizi Kısa Anlatıyorum Ama Bu Dersimizi İyi Bilmeniz Gerekir Gittikçe mysql kodlarımız Karışacak Çünkü Ama Karışacak Diyorum Diye Gözünüz Korkmasın Oldukça Basit Kodlar
    Birdahaki Dersimizde Görüşmek Üere ...
    vehbi akdogan - kişisel blog sitesi
    Sosyal Aglarda Ben :)
    facebook
    twitter
    google
    youtube
    rss

    About Us

    İstatistik

    Iletisim

    Ad

    E-posta *

    Mesaj *

    © Vehbi Akdogan - Kişisel Blog Sitesi | Tüm Hakları Saklıdır.