vehbiakdogan

Senior Sofware Developer

PDOSQL - MySQL

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

4 thoughts on “PDO Ders2 – Veri tabanına Bağlanmak Ve veritabanında İşlem yapmak

  • canan

    İyi günler Tayfun bey. Ben php ye yeni başladım ve öncelikle bir blog sitesi yaparak kavramak istedim. Şuan pdo ile blog sitemi yapmaya çalışıyorum sizin mysql fonksiyonları ile yaptıklarınızı referans alarak .Fakat bir sorunum var günlerdir çözüm bulamadım. Admin girişi yapmak istediğim zaman hem bu şifre hatırlansın mı diyor hemde böyle bir yönetici bulunmamaktadır uyarısı veriyor. Bunu düzeltemeden ilerleyemiyorum.Yardımcı olursanız sevinirim.İyi çalışmalar.

    Yanıtla
    • öncelikle benim adı vehbi bunu belirteyim söylediğiniz hata içinde kodlarınızı görmeden birşey söyleyemem http://uzmancevap.org bu sitede sorunlarını paylaşırsan anlık çözümde bulabilirsin iyi çalışmalar başarılar

      Yanıtla

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir