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
Yayınlayan: Unknown

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

vehbi akdogan - kişisel blog sitesi
Share:

Yorum Yaz ..

Facebook
Blogger

1 yorum:

  1. guzel bilgi olmus saolasın facebook adresin varmı acaba yazarsan sevinirim

    YanıtlaSil

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.