PDO Nedir ve Neden Kullanmalıyız Versiyon 2.10

soulmy php 09.Haz.2013 147 görüntülenme 0 yorum

Günün birinde mysql_ fonksiyonlarına veda edeceğiz. php.net bile bu işlevin kullanılmasını önermemekte, bunun yerine PDO veya MySQLi kullanılmasını önermekte.

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.

İşte bu yüzden ileride bir sıkıntı yaşamamak için PDO veya MySQLi öğrenmek gerekiyor.

Her ikisini anlatamam ama en azından PDO'yu anlatabilirim. smile smiley

PDO Nedir?

PDO, gelişmiş bir veritabanı yönetimi eklentisidir. Bu eklenti MySQL'in yanısıra MySQL dışında da birçok veritabanını desteklemekte ve böylece veritabanınızı değiştirdiğiniz durumlarda kodları değiştirmeye gerek kalmamaktadır. PDO'nun desteklediği veritabanlarını aşağıda bulabilirsiniz:

  • 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

Ayrıca PDO, güvenlik açısından da SQL Injection için başlı başına koruma sağlıyor. Mesela "mysql_real_escape_string" gibi bir fonksiyona ihtiyaç duymuyor.

Performansını test etmedim ama birçok yerde daha hızlı olduğunu okudum.

Son olarak PDO'yla kodlama yapmanın kolaylığından bahsedeceğim. Aşağıda verdiğim kodlarda MySQL'e 3 ayrı yolla bağlanıldığını görmektesiniz.

Kodlar php.net'ten alıntıdır.

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("example.com", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

Sonraki yazımda PDO ile MySQL bağlantısı nasıl yapılır, onu anlatacağım.

Yorumlar

Bu yazıya yorum yapan ilk kişi sen ol.