2013-09-06 20 views
7

arasındaki fark nedir? Web uygulamamı MySQL'den SQLite veritabanına taşıyorum. Orada sqlite ile iletişim için iki PHP uzantıları olduğunu öğrendim: php_sqlite3.dll ve php_pdo_sqlite.dll.sqlite3 ve pdo_sqlite

Hangi uzantı daha iyidir? Ya da başka bir soru: Bu uzantılar arasındaki temel farklılıklar nelerdir?

+1

php_sqlite3, mysql _ *() işlevlerini sağlayan php_mysql'nin sqlite eşdeğeri olan doğrudan bir sqlite arabirimidir. pdo_sqlite, PDO'nun sqlite kullanmasına izin verir. –

cevap

15

PDO, PHP'deki veritabanı bağlantıları için bir sarıcıdır. Veritabanı yönetim sistemlerinin (MySQL, PostgreSQL ...) çoğunluğu tarafından sunulan işlevselliği kapsayacak şekilde tasarlanmıştır. Bu yüzden, hangi DMBS'yi kullanıyor olursa olsun işlev çağrıları tamamen aynıdır. Bakınız http://php.net/manual/en/book.pdo.php. php_pdo_sqlite.dll, bir SQLite veritabanına erişmek için PDO arabirimini kullanmanızı sağlar.

Diğer kitaplık (php_sqlite3.dll), farklı işlev çağrılarıyla kendi arabirimidir. Bunu kullanan herhangi bir kod sadece bir SQLite veritabanına erişebilir. http://php.net/manual/en/book.sqlite3.php

PDO'nun SQLite3'ün işlevselliği ile tam olarak eşleşmediğini görebilirsiniz. Bu, SQLite3'ün PDO veya PDO aracılığıyla mevcut olmayan şeyleri sunabileceği şeydir, SQLite3 bunları destekleyemediği için hiçbir şey yapmayan işlevlere sahiptir.

PDO'nun avantajı, gelecekte tekrar geçiş yapmak isterseniz (bir kez daha geçiş yapabilmeniz için) çok fazla kod değiştirmeniz gerekmeyecektir. SQL'inizi genel olarak yeterli tutarsanız, hemen hemen bağlantı bildirimini değiştirmeniz gerekir.

+0

PDO değil sqlite3 uzantısını kullandığınızdan emin olmanın bir yolu var mı? –

+1

Evet, tamamen farklı sınıflar kullanıyorlar, bu yüzden pdo'yu kullanarak kod 'yeni PDO (...)' yi arayacak ve sqlite3 kodunu kullanarak kodunuzu "yeni SQLite3 (...)" olarak adlandırır –