Was ist der Unterschied zwischen MySQL, MySQLi und PDO ?
Welches ist am besten für PHP-MySQL geeignet?
Es gibt (mehr als) drei beliebte Möglichkeiten, MySQL von PHP aus zu verwenden. Dies beschreibt einige Funktionen / Unterschiede PHP: Auswahl einer API :
Ich würde empfehlen, PDO mit vorbereiteten Anweisungen zu verwenden. Es ist eine gut gestaltete API, mit der Sie bei Bedarf einfacher zu einer anderen Datenbank (einschließlich einer Datenbank, die ODBC unterstützt ) wechseln können.
Dies sind verschiedene APIs für den Zugriff auf ein MySQL-Backend
Es kommt also darauf an, welche Art von Code Sie produzieren möchten. Wenn Sie objektorientierte Ebenen oder einfache Funktionen bevorzugen ...
Mein Rat wäre
Auch mein Gefühl, die MySQL-API würde wahrscheinlich in zukünftigen Versionen von gelöscht werden
PHP
.quelle
mysqli ist die erweiterte Version von mysql.
Die PDO-Erweiterung definiert eine einfache, konsistente Schnittstelle für den Zugriff auf Datenbanken in PHP. Jeder Datenbanktreiber, der die PDO-Schnittstelle implementiert, kann datenbankspezifische Funktionen als reguläre Erweiterungsfunktionen verfügbar machen.
quelle
Insbesondere bietet die MySQLi-Erweiterung die folgenden äußerst nützlichen Vorteile gegenüber der alten MySQL-Erweiterung.
OOP-Schnittstelle (zusätzlich zur Prozedur) Vorbereitete Anweisung Unterstützung Transaktion + Unterstützung gespeicherter Prozeduren Schönere Verbesserungen der Syntaxgeschwindigkeit Verbessertes Debugging
PDO-Erweiterung
Die Erweiterung PHP Data Objects ist eine Datenbank-Abstraktionsschicht. Insbesondere ist dies keine MySQL-Schnittstelle, da sie Treiber für viele Datenbank-Engines (natürlich einschließlich MYSQL) bereitstellt.
PDO zielt darauf ab, eine konsistente API bereitzustellen, dh, wenn ein Datenbankmodul geändert wird, sollten die Codeänderungen, um dies widerzuspiegeln, minimal sein. Wenn Sie PDO verwenden, funktioniert Ihr Code normalerweise in vielen Datenbankmodulen "nur", indem Sie einfach den von Ihnen verwendeten Treiber ändern.
PDO ist nicht nur datenbankübergreifend kompatibel, sondern unterstützt auch vorbereitete Anweisungen, gespeicherte Prozeduren und mehr, während der MySQL-Treiber verwendet wird.
quelle