Was ist der Unterschied zwischen MySQL, MySQLi und PDO?

Was ist der Unterschied zwischen MySQL, MySQLi und PDO ?

Welches ist am besten geeignet für die Verwendung mit PHP-MySQL?

   

    Es gibt (mehr als) drei beliebte Möglichkeiten, MySQL von PHP zu verwenden.

    1. ( Veraltet ) Die mysql-functionen sind prozedural und verwenden manuelles Escaping.
    2. MySQLi ersetzt die mysql-functionen durch objektorientierte und prozedurale Versionen. Es hat Unterstützung für vorbereitete Aussagen.
    3. PDO (PHP Data Objects) ist eine allgemeine databaseabstraktionsschicht mit Unterstützung für MySQL unter vielen anderen databaseen. Es bietet vorbereitete statementen und eine große Flexibilität bei der Rückgabe von Daten.

    Ich würde empfehlen, PDO mit vorbereiteten Aussagen zu verwenden. Es ist eine gut gestaltete API und wird Ihnen bei Bedarf leichter in eine andere database (einschließlich aller, die ODBC unterstützt) verschieben.

    Dies sind verschiedene APIs für den Zugriff auf ein MySQL-Backend

    • Die mysql ist die historische API
    • Das mysqli ist eine neue Version der historischen API. Es sollte besser funktionieren und eine bessere function haben. Außerdem ist die API objektorientiert.
    • PDO_MySQL , ist das MySQL für PDO. PDO wurde in PHP eingeführt, und das Projekt zielt darauf ab, eine gemeinsame API für alle databaseen zugänglich zu machen. Theoretisch sollten Sie in der Lage sein, zwischen RDMS zu migrieren, ohne Code zu ändern (wenn Sie keine spezifische RDBM-function in Ihren Abfragen verwenden) ), auch objektorientiert.

    Es hängt also davon ab, welche Art von Code Sie produzieren möchten. Wenn Sie objektorientierte Ebenen oder einfache functionen bevorzugen …

    Mein Rat wäre

    1. PDO
    2. MySQLi
    3. mysql

    Auch mein Gefühl, die MySQL-API würde wahrscheinlich in zukünftigen Versionen von PHP gelöscht werden.

    Es gibt eine Tabelle , die die 3 API-functionen vergleicht. Verwenden Sie Mysqli, wann immer es möglich ist, ebenso wie das neueste, das nach PDO eingeführt wurde und in Zukunft besser gepflegt wird.

    mysqli ist die erweiterte Version von mysql.

    Die PDO-Erweiterung definiert eine leichte, konsistente Schnittstelle für den Zugriff auf databaseen in PHP. Jeder databasetreiber, der die PDO-Schnittstelle implementiert, kann datenbankspezifische functionen als reguläre Erweiterungsfunktionen verfügbar machen.

    Insbesondere bietet die MySQLi-Erweiterung die folgenden äußerst nützlichen Vorteile gegenüber der alten MySQL-Erweiterung.

    OOP-Schnittstelle (zusätzlich zu prozeduralen) Vorbereitete statement Support-Transaktion + Stored Procedure-Unterstützung Nicer Syntax Geschwindigkeit Verbesserungen Enhanced Debugging

    PDO-Erweiterung

    Die PHP Data Objects-Erweiterung ist eine databaseabstraktionsschicht. Insbesondere ist dies keine MySQL-Schnittstelle, da sie Treiber für viele database-Engines bereitstellt (natürlich einschließlich MYSQL).

    PDO zielt darauf ab, eine konsistente API bereitzustellen, das heißt, wenn ein databasemodul geändert wird, sollte der Code geändert werden, um dies widerzuspiegeln. Wenn Sie PDO verwenden, funktioniert Ihr Code normalerweise einfach über viele database-Engines hinweg, indem Sie einfach den verwendeten Treiber ändern.

    Neben der datenbankübergreifenden Kompatibilität unterstützt PDO auch vorbereitete statementen, gespeicherte Prozeduren und mehr, während der MySQL-Treiber verwendet wird.

    Einfach gesagt können wir sagen, dass die MySQL Improved Extension verschiedene Vorteile bietet. Die Erweiterung mysqli ermöglicht Ihnen den Zugriff auf die functionen von MySQL 4.1 und höher.

    Die Erweiterung PHP Data Objects (PDO) definiert eine leichtgewichtige, konsistente Schnittstelle für den Zugriff auf databaseen in PHP. Jeder databasetreiber, der die PDO-Schnittstelle implementiert, kann datenbankspezifische functionen als reguläre Erweiterungsfunktionen verfügbar machen. Beachten Sie, dass Sie keine databasefunktionen mit der PDO-Erweiterung alleine ausführen können. Sie müssen einen datenbankspezifischen PDO-Treiber verwenden, um auf einen databaseserver zuzugreifen.