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
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ı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.
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.
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:
PDO Sınıfları
Aşağıda verilen üç PDO sınıfı vardır:
PDO tarafından desteklenen veritabanları
- MySQL
- PostgreSQL
- Kahin
- Ateş kuşu
- MS SQL Sunucusu
- Sybase
- Informix
- IBM'in
- ÜcretsizTDS
- SQLite
- Kübrid
- 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.
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.
Aşama 3: Kurmak istediğiniz bileşenleri seçin ve İleri butonuna tıklayın.
Adım 4: XAMPP'yi kurmak istediğiniz yerde xampp adında yeni bir klasör oluşturun.
Adım 5: Burada İleri'ye tıklayın ve ilerleyin. XAMPP sunucusunun kurulumu buradan başlayacaktır.
Adım 6: XAMPP başarıyla kuruldu. Bitir düğmesine tıklayın.
Adım 7: Tercih edilen Dili seçin.
Adım 8: Apache sunucusunu ve MySQL'i buradan çalıştırın (verilen ekran görüntüsüne göre).
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.
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.
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(); } ?>
Veritabanı bağlantısını kapatma
getMessage(); } // this command close the connection. $dbConn = null; ?>
Çıktı