"Enter"a basıp içeriğe geçin

Php pdo kullanımı ve pdo sınıfı örneği

Php kullandığımız projelerimizde veritabanı bağlantılarımızı halen mysqli ile sağlıyorsak sql injection yememiz mümkün fakat pdo bunu kendi engelliyor. Hayır mysqli candır diyenler için şöyle alayım o halde >

PDO (PHP Data Objects) kullanmak isteyenler için yazımız devam ediyor. Öncelikle veritabanı bilgilerimizin yer alacağı bir sınıf oluşturalım sonra pdo sınıfımızı bu sınıftan türeterek bağlantımızı sağlayalım.

<?php

class dbDefinations {

    protected $DB_DRIVER = 'pdo_mysql';
    protected $DB_HOST = 'localhost';
    protected $DB_PORT = 3306; //3306 for cpanel or 8889 for mamp
    protected $DB_NAME = 'db_name';
    protected $DB_USER = 'db_username';
    protected $DB_PASS = 'db_userpassword';

}

 ?>

Daha sonrasında ise veritabanına erişimimizi sağlayacak pdo sınıfımızı yaratalım.

<?php
/**
 * dbDefinations.php dosyamızı pdo sınıfımıza gömelim.
 */
require('dbDefinations.php');

class dbConnection extends dbDefinations
{

    /**
     * bağlantı objemizi tanımlayalım.
     *
     * @var PDO
     */
    protected static $db;

    /**
     * private olarak __construct ( kurulum ) fonksiyonumuzu tanımlayalım ki başka yerlerden erişim olmasın.
     *
     * 
     */
    private function __construct()
    {

        try {
            // veritabanı bilgilerimizi üst sınıfımızdan getirelim.
            self::$db = new PDO('mysql:host=' . $this->DB_HOST . ';port=' . $this->DB_PORT . ';dbname=' . $this->DB_NAME, $this->DB_USER, $this->DB_PASS, array(
                PDO::ATTR_PERSISTENT => true
            ));
            self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            //Hata yakalanırsa ekrana basalım.
            echo "Connection Error: " . $e->getMessage();

        }

    }


    /**
     * bağlantı işlemimiz, static olarak tanımlayalım soyutlamadan erişebilelim.
     *
     * @return PDO
     */
    public static function getConnection()
    {

        if (!self::$db) {
            //bağlantı çın çın.
            new dbConnection();
        }

        //hali hazırda bağlantı varsa yeni oluşturmasın tekrar bağlansın.
        return self::$db;
    }

}

?>

Evet PDO bağlantı sınıfımız hazır güzel güzel projelerinizde kullanmanız dileğimle.

mutluluk sizinle olsun.

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.