Mysqli'nin veya PDO mysql hareket?

5 Cevap php

Duplicate: mysqli or PDO - what are the pros and cons?

Ben mysqli veya PDO ya öncelikle bir öğrenme aracı mysql bir web sitesi taşımak için arıyorum, ama aynı zamanda performans artışları için mümkünse.

I http://php.net/manual/en/mysqli.overview.php ile okudum ve hem benim ihtiyaçlarına uygun olurdu gibi görünüyor, ama kuvvetle iki şekilde yalın değil.

Site şu anda öncelikle olmayan nesne yönelimli kod kullanır, ama diğer dillerde OO ile deneyimim var. Sorguların büyük bir çoğunluğu çok küçük bir güncelleme / ekler basit karmaşık bir seçme ifadelerdir. Benim kendi eğitimden ve bu özel site için hem de en yararlı olarak ne önerirsin?

Eğer herhangi bir ek bilgiye ihtiyacınız varsa lütfen bana bildirin.

Teşekkürler.

5 Cevap

PDO Pro:

  • 5.x itibariyle PHP Native
  • Supports named parameters as opposed to numerically indexed ?'s
  • Aynı soyutlama kitaplığı birden fazla farklı RDBM en destekliyor

Mysqli Con'ın:

  • Has issues with properly storing and retrieving large objects in the database.
  • Adlandırılmış parametreleri desteği yok.

Aksi takdirde, hem kütüphaneler temelde aynı şeyin farklı tatlar vardır. Onlar hem parametreleri hem de destek parametreli sorgular alıntı işlevlere sahiptir.

Yukarıdaki tartışmaların hiçbiri tesir ederse, o zaman vb kendi sözdizimi, stil, dayalı tercih hangisi kütüphane ile gitmek

I PDO herhangi bir performans artışı verecek inanmıyorum, ama size bu iki çok cazip uzun vadeli faydalar sağlar:

  • Eğer sadece bir kaç kod değişiklikleri ile diğer veritabanları kullanmak için app ölçeklendirilebilir
  • PDO kütüphane inşa güvenlik çok şey var

Eğer # 1 ve # 2 faydaları anlamak yoksa, o zaman sadece (en azından doğru * olsa mysql_real_escape_string kullanıyorsanız *) denenmiş ve gerçek mysql kütüphanesi ile sopa?

Ben yeni bir PHP veritabanı kitaplığı öğrenme olsaydı, ben kendi sunucusu dışındaki sistemlere çeşitli kullanılabilecek bir web uygulaması oluştururken, özellikle PDO gitmek için yol olduğuna inanıyorum.

Dan http://www.php.net/manual/en/mysqli.overview.php:

While PDO has its advantages, such as a clean, simple, portable API, its main disadvantage is that it doesn't allow you to use all of the advanced features that are available in the latest versions of MySQL server. For example, PDO does not allow you to use MySQL's support for Multiple Statements.

PDO fazla uğraşmadan başka daha büyük bir güvenlik sunuyor, ama geçiş için ben daha hızlı, daha kolay PDO'de yana daha MySQLi geçmenizi öneririm, ve en API / sözdizimi eski mysql uzantısı ile oldukça aynıdır

See here (scroll below) for quick comparisson:
PHP & MySQLi

Edit: Eğer daha önce okudum üzgünüm, bu gibi aynı linki görünüyor

Benim ORM ve soyutlama kitaplığı oluştururken ben bir daha iyi performans görmek için mysqli ve PDO kullanılır. Tek başına dayalı seçim yapmak için yeterli değil ama - MySQLi hızlıydı.

MySQLi / MySQL / SQLite veya diğer bağımsız kütüphanelerin herhangi PDO'nun üzerinde sahip olduğu tek şey genellikle hiç bir sonuç için test etmek için yardımcı sonucu bulunan satır sayısını döndürür olmasıdır. Bu arada, PDO'de sen fetchAll () sonuçları ve sayısı () onları da - sonuç sayısını görmek için önce veya bir sayım sorguyu çalıştırın. Yani farklı yöntemlerle bu sorunun üstesinden uyum var.

Oh, ve ben sonunda MySQLi üzerinde PDO'yu seçin.