Was ist besser, MySQL oder MySQLi? Und warum? Welches soll ich verwenden?
Ich meine besser, nicht nur in Bezug auf die Leistung, sondern auch in Bezug auf andere relevante Funktionen.
Wenn Sie sich MySQL Improved Extension Overview ansehen , finden Sie hier alles, was Sie über die Unterschiede zwischen den beiden wissen müssen.
Die wichtigsten nützlichen Funktionen sind:
mysql_*()
ist jetzt veraltet und wird bald entfernt . Sie sollten es nicht für neuen Code verwenden.Es gibt eine Handbuchseite, die Ihnen bei der Auswahl zwischen MySQL, MySQL und PDO hilft
Das PHP-Team empfiehlt mysqli oder PDO_MySQL für die Neuentwicklung:
Die Seite enthält auch eine Funktionsmatrix, in der die Erweiterungs-APIs verglichen werden. Die Hauptunterschiede zwischen mysqli und mysql API sind folgende:
* http://news.php.net/php.internals/53799
Es gibt eine zusätzliche Feature-Matrix, in der die Bibliotheken (new mysqlnd versus libmysql) unter verglichen werden
und ein sehr gründlicher Blogartikel bei
quelle
Ich habe die Verwendung von mysqli aufgegeben. Es ist einfach zu instabil. Ich hatte Abfragen, die PHP mit mysqli zum Absturz brachten, aber mit dem mysql-Paket einwandfrei funktionieren. Auch mysqli stürzt in LONGTEXT-Spalten ab . Dieser Fehler wurde seit mindestens 2005 in verschiedenen Formen gemeldet und ist weiterhin behoben . Ich würde ehrlich gesagt gerne vorbereitete Anweisungen verwenden, aber mysqli ist einfach nicht zuverlässig genug (und niemand scheint sich die Mühe zu machen, es zu reparieren). Wenn Sie wirklich vorbereitete Anweisungen wünschen, gehen Sie mit PDO.
quelle
MySQLi steht für MySQL verbessert. Es ist eine objektorientierte Schnittstelle zu den MySQL-Bindungen, die die Verwendung vereinfacht. Es bietet auch Unterstützung für vorbereitete Aussagen (die sehr nützlich sind). Wenn Sie mit PHP 5 arbeiten, verwenden Sie MySQLi.
quelle
Was ist besser ist PDO; Es ist eine weniger muffige Oberfläche und bietet auch die gleichen Funktionen wie MySQLi.
Die Verwendung vorbereiteter Anweisungen ist gut, da dadurch SQL-Injection-Möglichkeiten ausgeschlossen werden. Die Verwendung serverseitig vorbereiteter Anweisungen ist schlecht, da dadurch die Anzahl der Roundtrips erhöht wird.
quelle
Vorbereitete Aussagen sind für mich ein Muss. genauer gesagt, Parameterbindung (die nur bei vorbereiteten Anweisungen funktioniert). Dies ist die einzig wirklich vernünftige Möglichkeit, Zeichenfolgen in SQL-Befehle einzufügen. Ich vertraue den "Flucht" -Funktionen wirklich nicht. Die DB-Verbindung ist ein Binärprotokoll. Warum sollte ein ASCII-begrenztes Unterprotokoll für Parameter verwendet werden?
quelle