Hangisi daha iyi, mysql veya mysqli nedir? Ve neden? Hangi kullanmalıyım?
Ben performans açısından iyi değil demek, ancak diğer ilgili özelliktir.
Eğer bir göz varsa, MySQL Improved Extension Overview, bu size ikisi arasındaki farklar hakkında bilmeniz gereken her şeyi söylemelidir.
The main useful features are: - an Object-oriented interface - support for prepared statements - support for multiple statements - support for transactions - enhanced debugging capabilities - embedded server support.
MySQL, mysqli'nin ve PDO'de arasında seçim yardımcı olmak için özel bir kılavuz sayfası bulunmaktadır
PHP ekibi mysqli veya yeni bir gelişme için PDO_MYSQL önerir:
Bu mysqli veya PDO_MYSQL uzantıları da kullanılması tavsiye edilir. Bu yeni gelişme için eski mysql uzantısı kullanmak için tavsiye edilmez. Ayrıntılı bir özellik karşılaştırma matrisi aşağıda verilmiştir. Üç uzantıları genel performansı yaklaşık olarak aynı olarak kabul edilir. Uzatma performansı bir PHP web isteği toplam çalışma süresi yalnızca bir kısmını katkıda rağmen. Çoğu zaman, etki% 0.1 kadar düşüktür.
Sayfa da uzatma API'leri karşılaştıran bir özellik matrisi vardır. Aşağıdaki gibi mysqli'nin ve mysql API arasındaki temel farklar şunlardır:
mysqli mysql
Development Status Active Maintenance only
Lifecycle Active Long Term Deprecation Announced*
Recommended Yes No
OOP API Yes No
Asynchronous Queries Yes No
Server-Side Prep. Statements Yes No
Stored Procedures Yes No
Multiple Statements Yes No
Transactions Yes No
MySQL 5.1+ functionality Yes No
* http://news.php.net/php.internals/53799 sub>
De kütüphaneleri (libmysql karşı yeni mysqlnd) karşılaştıran ek bir özellik matrisi var
ve çok kapsamlı bir blog makale de
Ben mysqli kullanarak terk ettiler. Bu sadece çok kararsızdır. Ben kazasında PHP mysqli kullanarak ancak mysql paketi ile sadece iyi çalışır ki sorguları yaşadım. Ayrıca, mysqli crashes on LONGTEXT columns. Bu hata en azından 2005 yılından bu yana çeşitli şekillerde gündeme gelmiştir and remains broken. Ben dürüst hazırlanmış deyimleri kullanmak istiyorum ama mysqli sadece yeterince güvenilir değildir (ve kimse sabitleme rahatsız görünüyor). Eğer gerçekten istiyorsan hazırlanmış tablolar PDO ile gitmek.
Bana, hazırlanan tablolar için sahip olunması gereken bir özelliktir. daha doğrusu, parametre (yalnızca hazırlanmış tablolar üzerinde çalıştığı) bağlayıcı. SQL komutları içine dizeleri eklemek için sadece gerçekten aklı başında bir yoldur. i gerçekten 'kaçan' fonksiyonları güvenmiyorum. DB bağlantı neden parametreler için bir ASCII sınırlı alt protokolünü kullanmak, bir ikili protokol nedir?