Başlıktan anlaşılacağı gibi konumuz
PDO yani
PHP Data Object , kısaca nedir manuel sayfasından bir özetlemek gerekirse :
PHP Veri Nesneleri (PDO) eklentisi, PHP’deki veritabanlarına erişmek için
hafif ve tutarlı bir arayüz tanımlar. PDO arayüzü tanımı bulunan her veritabanı sürücüsü, veritabanına özgü özellikleri sıradan eklenti işlevleri olarak ifade edebilir
Başlangıç için bu kadar bilgi yeterli değilse
buradan manuel sayfasındaki dokümanlara göz atabilirsiniz.
PHP 5 + sürümleri ile uyumluluk göstermektedir, desteklediği veritabanları şunlardır
Local serverinizde phpinfo() fonksiyonumuzu çalıştıralım ve PDO eklentisinin aktif olup olmadığını görelim.
pdo_mysql kelimesini arama yapın uygun sonuç varsa işlem yapmamıza gerek yok , eğer yoksa
php.ini dosyamızda birkaç değişiklik yapacağız.
Mysql için eklenti kodumuz
[PHP_PDO]
extension=php_pdo.dll
[PHP_MYSQL]
extension=php_mysql.dll
desteklediği diğer veritabanları için
php.ini dosyamıza eklenecek kodlarımız
extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
Hangi driverlerimiz aktif onu görelim
PDO::getAvailableDrivers() statik metodumuz ile kontrol edelim
<?php
foreach(PDO::getAvailableDrivers() as $driver)
{
echo $driver.'<br />';
}
?>
database driverleri default konumdaysa muhtemelen sonuç şu şekil olmalı
Örnek Mysql veritabanımıza bağlanalım <?php
try {
$db = new PDO("mysql:dbname=test;host=localhost", "user", "pass" );
echo "PDO connection!";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>Herhangi problem yoksa
PDO connection! mesajını göreceksiniz.
Örnek PostgreSQL veritabanımıza bağlanalım <?php
try {
$db = new PDO("pgsql:dbname=test;host=localhost", "user", "pass" );
echo "PDO connection!";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>Örnek SQLite veritabanımıza bağlanalım <?php
try {
$db = new PDO("sqlite:/path/to/database.sdb");
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>Bağlantı kodumuzda
try ve
catch bloğumuz içerisine yazdığımız bağlantı kodumuz hata olasılığında
catch kısmı devreye girecektir.
Çalışmamızı
try kod bloğunun içinde yapmamız daha temiz olacaktır.
Tüm veritabanlarını listeleyelim foreach ($db->query('SHOW DATABASES') as $row) {
print_r($row);
}Insert $db->exec("INSERT INTO cms(name, languages) VALUES ('wordpress', 'PHP')");Select $sql = "SELECT * FROM cms";
foreach ($db->query($sql) as $row)
{
echo $row['name'].' : '.$row['languages'].'<br />';
}Update $db->exec("UPDATE cms SET name='habari' WHERE languages='PHP'");Daha detaylı bilgi isterseniz
php.net manuel veya
buradan ulaşabilirsiniz.
http://www.oguzkoc.com.tr/php-data-object-pdo/