MySQL vs. MySQLi bei Verwendung von PHP [closed]

Lesezeit: 4 Minuten

MySQL vs MySQLi bei Verwendung von PHP closed
Anand

Was ist besser, MySQL oder MySQLi? Und warum? Welche soll ich verwenden?

Ich meine besser nicht nur in Bezug auf die Leistung, sondern auch in Bezug auf alle anderen relevanten Funktionen.

1646968446 218 MySQL vs MySQLi bei Verwendung von PHP closed
Markus Davidson

Wenn Sie einen Blick darauf werfen Überblick über verbesserte MySQL-Erweiterungensollte es Ihnen alles sagen, was Sie über die Unterschiede zwischen den beiden wissen müssen.

Die wichtigsten nützlichen Funktionen sind:

  • eine objektorientierte Schnittstelle
  • Unterstützung für vorbereitete Erklärungen
  • Unterstützung für mehrere Anweisungen
  • Unterstützung für Transaktionen
  • erweiterte Debugging-Möglichkeiten
  • Embedded-Server-Unterstützung.

  • Ja, das Beste ist, dass mysqli vorbereitete Anweisungen unterstützt

    – Jondinham

    22. Oktober 2011 um 9:57 Uhr

  • Zu beachten ist auch, dass MySQLi nur mit MySQL 5+ funktioniert. Das ist nicht mehr wirklich relevant, aber als MySQLi herauskam, war MySQL 4 noch der Standard. Dies ist einer der Gründe, warum die Erweiterungen separat sind, der alte MySQL-Treiber bleibt aus Kompatibilitätsgründen dort.

    – zneak

    4. Januar 2013 um 5:37 Uhr

  • Es ist erwähnenswert, dass sich die Dinge in sechs Jahren stark verändert haben. mysql_*() ist jetzt veraltet und wird entfernt bald. Sie sollten es nicht für neuen Code verwenden.

    Benutzer1864610

    21. Mai 2015 um 1:47 Uhr

  • Was sollten wir mit weniger CPU und RAM wählen?

    – Mahdi Jazini

    5. Oktober 2015 um 6:36 Uhr

  • Siehe Gordons Antwort unten. Die alte mysql-Erweiterung wird nicht mehr unterstützt, daher ist es besser, die mysqli-Erweiterung trotzdem zu verwenden.

    – Mark Davidson

    5. Oktober 2015 um 9:37 Uhr

1646968446 160 MySQL vs MySQLi bei Verwendung von PHP closed
Gordon

Es gibt eine Handbuchseite, die der Hilfe bei der Auswahl zwischen mysql, mysqli und PDO unter gewidmet ist

Das PHP-Team empfiehlt mysqli oder PDO_MySQL für neue Entwicklungen:

Es wird empfohlen, entweder die Erweiterungen mysqli oder PDO_MySQL zu verwenden. Es wird nicht empfohlen, die alte mysql-Erweiterung für neue Entwicklungen zu verwenden. Eine detaillierte Feature-Vergleichsmatrix finden Sie unten. Die Gesamtleistung aller drei Erweiterungen wird als ungefähr gleich angesehen. Zwar trägt die Performance der Erweiterung nur zu einem Bruchteil zur Gesamtlaufzeit einer PHP-Webanfrage bei. Oft beträgt die Auswirkung nur 0,1 %.

Die Seite enthält auch eine Funktionsmatrix, in der die Erweiterungs-APIs verglichen werden. Die Hauptunterschiede zwischen mysqli und der mysql-API sind wie folgt:

                               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

Es gibt eine zusätzliche Funktionsmatrix zum Vergleich der Bibliotheken (neues mysqlnd versus libmysql) unter

und ein sehr ausführlicher Blogartikel unter

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 funktionierten. Ebenfalls mysqli stürzt bei LONGTEXT-Spalten ab. Dieser Fehler wurde mindestens seit 2005 in verschiedenen Formen gemeldet und bleibt kaputt. 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, wählen Sie PDO.

  • PDO ist auch nicht gerade perfekt (ich bin damit auf einige böse Arbeitsspeicherabzüge gestoßen), aber zumindest hat es eine breitere Benutzerbasis, also ist es wahrscheinlich eine sicherere Wette.

    – troelskn

    14. Februar 2009 um 12:52 Uhr

  • @troelskn, ist normales MySQL nicht einfach besser?

    – Schrittmacher

    16. Juli 2013 um 15:58 Uhr


  • @ Pacerier Wenn man bedenkt, dass es veraltet ist, würde ich nein sagen. Im Allgemeinen scheint es, dass PDO zur Standardwahl geworden sind.

    – troelskn

    17. Juli 2013 um 11:54 Uhr

  • @troelskn, aber veraltet bedeutet nichts, außer dass es in zukünftigen Versionen nicht mehr vorhanden sein würde. In Bezug auf die Stabilität ist normales MySQL nicht stabiler?

    – Schrittmacher

    18. Juli 2013 um 13:08 Uhr

  • An diesem Punkt (5.5) gibt PHP aktiv Warnungen aus, wenn Sie es verwenden: php.net/manual/en/migration55.deprecated.php

    – troelskn

    18. Juli 2013 um 19:34 Uhr

MySQLi steht für MySQL Improved. Es ist eine objektorientierte Schnittstelle zu den MySQL-Bindungen, die die Verwendung vereinfacht. Es bietet auch Unterstützung für vorbereitete Anweisungen (die sehr sinnvoll). Wenn Sie PHP 5 verwenden, verwenden Sie MySQLi.

Was besser ist, ist PDO; Es ist eine weniger mühselige Schnittstelle und bietet auch die gleichen Funktionen wie MySQLi.

Die Verwendung vorbereiteter Anweisungen ist gut, da sie die Möglichkeiten der SQL-Einschleusung eliminiert; Die Verwendung von serverseitig vorbereiteten Anweisungen ist schlecht, da sie die Anzahl der Roundtrips erhöht.

MySQL vs MySQLi bei Verwendung von PHP closed
Javier

Für mich sind vorbereitete Kontoauszüge ein Must-Have-Feature. genauer gesagt Parameterbindung (die nur bei vorbereiteten Anweisungen funktioniert). Es ist die einzige wirklich vernünftige Möglichkeit, Zeichenfolgen in SQL-Befehle einzufügen. Ich traue den ‘Escape’-Funktionen wirklich nicht. Die DB-Verbindung ist ein binäres Protokoll, warum ein ASCII-begrenztes Unterprotokoll für Parameter verwenden?

989710cookie-checkMySQL vs. MySQLi bei Verwendung von PHP [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy