logo

PHP PDO'ya giriş

PHP, dinamik ve etkileşimli web sayfaları oluşturmak için yaygın olarak kullanılan, açık kaynaklı, genel amaçlı bir kodlama dilidir. PHP, aşağıdakiler gibi çok çeşitli ilişkisel veritabanı yönetim sistemlerine erişebilir: MYSQL, SQLite , Ve PostgreSQL . PHP 5.1 sürüm yeni bir veritabanı bağlantısı soyutlama kitaplığı sundu; PHP Veri Nesneleri (PDO).

PDO nedir?

PDO şunu ifade eder: PHP Veri Nesnesi , PHP'de bir veritabanına erişim için hafif ve tutarlı bir arayüz tanımlayan bir PHP uzantısıdır. Bir çekirdek PDO sınıfı ve veritabanına özgü sürücü sağlayan bir dizi PHP uzantısıdır. Her veritabanı sürücüsü, veritabanına özgü özellikleri, PDO arayüzünü uygulayan normal bir uzantı işlevi olarak ortaya çıkarabilir.

Not: PDO uzantısının kendisini kullanarak herhangi bir türde veritabanı işlevi gerçekleştiremeyiz. Bir veritabanı sunucusuna erişmek için veritabanına özel bir PDO sürücüsü kullanmalıyız.

PDO temel olarak veritabanı soyutlamasından ziyade veri erişimi soyutlamasına odaklanır. Sağlar veri erişimi soyutlama katmanı Bu, hangi veritabanını kullanıyor olursak olalım, sorgulama yapmak ve veri getirmek için o veritabanının sağladığı işlevlerin aynısını kullanmamız gerektiği anlamına gelir. PDO, SQL'i yeniden yazmadığı veya eksik özellikleri taklit etmediği için veri soyutlaması sağlamaz.

PDO'nun avantajı

PDO, nesnelerle çalışmanın çeşitli yollarını sunar ve çalışmayı çok daha kolaylaştıran hazırlanmış ifadeleri alır. PHP'de, çeşitli veritabanlarında tek tip erişime olanak sağladığımız bir veritabanı erişim aracıdır.

PDO, farklı veritabanları ve platformlar arasında nispeten kesintisiz geçişe olanak tanır ve bu, bağlantı dizesini değiştirerek kolayca yapılabilir. Veritabanına özgü sözdizimlerini desteklemez.

ymail

PDO'nun bazı avantajları aşağıdaki gibidir:

Java'da çift
    Veritabanı desteği
    PDO uzantısı, PDO sürücüsü için yazılmış herhangi bir veritabanına erişebilir. için kullanılan çeşitli PDO sürücüleri mevcuttur. FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Çağrı Arayüzü, Firebird/Interbase 6 , Ve PostgreSQL veritabanları ve çok daha fazlası.
    Sürücüler her sistemde otomatik olarak mevcut değildir, bu nedenle mevcut sürücülerimizi bulmamız ve ihtiyaç duyduğumuzda eklememiz gerekir.Veritabanı bağlantısı
    Veritabanı bağlantısını kurmak için farklı söz dizimleri mevcuttur. Bu sözdizimleri belirli veritabanlarına bağlıdır. PDO kullanılırken işlemler try/catch bloklarına sarılmalı ve istisna tekniği kullanılmalıdır.
    Genellikle yalnızca tek bir bağlantının oluşturulması gerekir ve bu bağlantılar, veritabanının null olarak ayarlanması için programlanmasıyla kapatılır.Hata yönetimi
    PDO, hata işleme için istisnaların kullanılmasına izin verir. Bir istisna oluşturmak için PDO, ilgili bir hata modu niteliğine zorlanabilir.
    Üç hata modu vardır; Sessiz (varsayılan), Uyarı , Ve İstisna . Uyarı ve İstisna, DRY programlamada daha kullanışlıdır.
      Sessiz- Varsayılan bir hata modudur.Uyarı- Hata ayıklamak için kullanışlıdır.İstisna- Bu mod, bir kişinin sisteminizden yararlanmak için kullanabileceği verileri gizlerken, hassas hata yönetimine olanak tanır.
    Ekle ve Güncelle
    PDO, yaygın olarak kullanılan veritabanı ekleme ve güncelleme işlemini iki adımlı bir işleme indirir;
    Hazırla >> [Bağla] >> Yürüt.
    Bu yöntem sayesinde, SQL enjeksiyonu yoluyla kötü niyetli saldırılara karşı koruma sağlayan PDO'nun hazırlanmış ifadelerinden tam olarak faydalanabiliriz.
    Hazırlanan ifadeler, bu verileri sunucuya göndererek birden çok kez çalıştırılabilen, önceden derlenmiş SQL ifadeleridir. Yer tutucu içerisinde kullanılan bu veriler SQL enjeksiyon saldırısından otomatik olarak korunur.

PDO kullanmanın faydaları

PDO yerel veritabanı sürücüsüdür. Aşağıda verilen PDO kullanmanın bazı faydaları vardır:

    Kullanılabilirlik- Otomatik rutin işlemleri gerçekleştirmek için birçok yardımcı fonksiyon içerir.Tekrar Kullanılabilirlik- Birden fazla veritabanına erişim için birleşik API sunar.Güvenlik- SQL enjeksiyonundan koruyan hazırlanmış bir ifade kullanır. Hazırlanmış bir ifade, SQL ifadesinin talimatını verilerden ayıran önceden derlenmiş bir SQL ifadesidir.

PDO Sınıfları

Aşağıda verilen üç PDO sınıfı vardır:

    PDO- PHP ile veritabanı arasındaki bağlantıyı temsil eder.PDO Beyanı- Hazırlanan ifadeyi temsil eder ve ifadenin yürütülmesinden sonra ilişkili bir sonucu belirler.PDO İstisnası- PDO tarafından oluşturulan hataları temsil eder.

PDO tarafından desteklenen veritabanları

  1. MySQL
  2. PostgreSQL
  3. Kahin
  4. Ateş kuşu
  5. MS SQL Sunucusu
  6. Sybase
  7. Informix
  8. IBM'in
  9. ÜcretsizTDS
  10. SQLite
  11. Kübrid
  12. 4 boyutlu

PDO ve MySQLi arasındaki karşılaştırma

Veritabanına PHP kullanarak erişmek için temel olarak iki seçeneğimiz var: MySQLi Ve PDO (PHP Veri Nesnesi). MySQLi, daha hızlı performans sağlayan bir PHP yerelidir; oysa deneyimli geliştiricilerin çoğu, çok çeşitli veritabanı sürücülerini desteklediği için PDO ile çalışmayı tercih eder. Aşağıda listelenen PDO ile MySQLi arasında özelliklerine göre bazı farklılıklar vardır.

Özellikler PDO MySQLi
Veritabanı Desteği 12 farklı sürücü Yalnızca MySQL
Bağlantı Kolay Kolay
API'si AÇIK OOP + Prosedür
Verim Hızlı Hızlı
Adlandırılmış Parametre Evet HAYIR
Nesne eşleme Evet Evet
Saklı yordam Evet Evet
Müşteri Tarafında Hazırlanan İfadeler Evet HAYIR
Güvenlik MySQLi'den daha güvenli. Güvenli ancak PDO'dan fazlası değil.

PDO veya MySQLi arasında hangisi tercih edilmelidir?

Hem PDO'nun hem de MySQLi'nin kendi avantajları vardır:

  • Daha önce de gördüğümüz gibi PDO 12 farklı veritabanı sistemi üzerinde çalışırken, MySQL yalnızca MySQL veritabanı ile çalışabilmektedir. Yani projemizi başka bir veritabanına geçirmek istersek PDO bunu kolaylaştırır. MySQLi'de kodun tamamını yeniden yazmamız gerekiyor.
  • PDO ve MySQLi'nin her ikisi de Nesne Yönelimlidir, ancak MySQLi aynı zamanda prosedürel API de sunar. Her ikisi de Hazırlanmış İfadeleri destekler. Hazırlanan İfadeler, SQL enjeksiyonundan koruduğu için web uygulaması güvenliği açısından önemlidir.

Gereklilik

Bu uzantıyı oluşturmak için harici kütüphanelere gerek yoktur.

Java'yı listele

Kurulum süreci

Aşama 1: En son XAMPP sunucusunu buradan indirin https://www.apachefriends.org/download.html Windows, Linux ve MacOS gibi farklı platformlar için.

Phppdo

Not: Burada yalnızca Windows işletim sistemi için kurulum sürecini tartışacağız.

Adım 2: Aşağıdaki adımları takip ederek XAMPP Sunucusunu sisteminize kurunuz.

Phppdo

Aşama 3: Kurmak istediğiniz bileşenleri seçin ve İleri butonuna tıklayın.

Phppdo

Adım 4: XAMPP'yi kurmak istediğiniz yerde xampp adında yeni bir klasör oluşturun.

Phppdo

Adım 5: Burada İleri'ye tıklayın ve ilerleyin. XAMPP sunucusunun kurulumu buradan başlayacaktır.

Phppdo

Adım 6: XAMPP başarıyla kuruldu. Bitir düğmesine tıklayın.

Phppdo

Adım 7: Tercih edilen Dili seçin.

Phppdo

Adım 8: Apache sunucusunu ve MySQL'i buradan çalıştırın (verilen ekran görüntüsüne göre).

Phppdo

Adım 9: Şimdi php.ini'yi şuradan açın: C:/xampp/php/php.ini (XAMPP'nizi kurduğunuz yer) ve uzantının yorumunu kaldırın 'php_pdo_mysql.dll' Ve 'php_pdo.dll' (MySQL veritabanıyla çalışıyorsanız) veya 'php_pdo_oci.dll' (Oracle veritabanıyla çalışıyorsanız). Şimdi veritabanıyla çalışmaya başlayın. PHP 5.1 üst sürümünde zaten ayarlanmıştır.

kısmi bağımlılık

PDO'yla çalışmak

Öncelikle bir veritabanı oluşturmamız gerekiyor o yüzden buradan myDB isminde bir veritabanı oluşturun.

Phppdo

Veritabanı Bağlantısı

Veritabanıyla etkileşim kurmak için her zaman bir veritabanı bağlantısı gerekir. Bu nedenle, veritabanına erişmek için tanımlayıcıyı, yani veritabanının konumunu, veritabanı adını, kullanıcı adını ve şifreyi bilmemiz gerekir.

Şimdi, notepad veya notepad++ gibi herhangi bir metin düzenleyicide PDO kullanarak veritabanı bağlantı programını oluşturun ve bunu coonection.php adıyla kaydedin. Localhost/80 kullanarak XAMPP sunucusunda çalıştırın.

yuvarlak robin zamanlaması

Örnek

 getMessage(); } ?> 

Çıktı

Aşağıdaki URL'yi kullanarak sunucuda çalıştırın localhost/Xampp/pdoexample/connection.php/ veya programınızı nereye kaydettiğinizi seçin.

Phppdo

Bağlantı Hatasını İşleme

Herhangi bir bağlantı hatası varsa bir PDOException nesnesi atılır. Hata durumunu ele almak istiyorsak istisnayı yakalayabiliriz veya bunu, tarafından ayarlanabilen global istisna işleyicisine de bırakabiliriz. set_istisna_handler() işlev.

Örnek

Bu örnekte dbUser(user-id) yanlış olduğundan çıktıda görebileceğimiz gibi bir istisna oluşturacaktır.

 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?> 
Phppdo

Veritabanı bağlantısını kapatma

 getMessage(); } // this command close the connection. $dbConn = null; ?> 

Çıktı

Phppdo