2016-02-25 9 views
5

Ich habe eine Website vor 5 Jahren mit PHP MySQL entworfen und funktioniert immer noch ohne Probleme. Ich habe gehört, dass MySQL ab PHP 5.5 offiziell veraltet ist und ab PHP 7 entfernt wurde. Außerdem bietet PHP drei verschiedene APIs für die Verbindung zu MySQL (wie MySQL, MySQLi und PDO). Mein Webserver wird häufig aktualisiert.Muss ich meine Website auf PHP MySQLi oder PDO upgraden?

Ich habe verstanden, ich muss auf neuere API wie MySQLi oder PDO für die Sicherheit verschieben. Jetzt bin ich verwirrt, ob ich MySQLi oder PDO wählen soll. Gibt es für diesen Fall auch Kompatibilitäts-/Migrationsoptionen?

+0

In Bezug auf die Wahl von MySQLi oder PDO ist in erster Linie meinungsbasiert, mit dem gesagt, ich glaube, einige würde sagen, PDO ist der sicherste der beiden, aber ich weiß nicht, ob das stimmt oder nicht. Wenn Sie von MySQL kommen, glaube ich, dass MySQLi leichter zu verstehen ist. – Epodax

+0

Ich empfehle Ihnen, weder die PHP-Version noch die MySQL-Version zu aktualisieren. Wenn die Website funktioniert, lass es funktionieren. Versions-Upgrade sollte manuell und nicht automatisch erfolgen –

+1

Ein Leitfaden über PDO, der ich würde sagen, ist die offensichtliche Wahl - https://pphdelusions.net/pdo – DTH

Antwort

2

Die Antwort ist ziemlich einfach.

Wenn Sie wie Mehrheit der PHP-Benutzer, werden Sie Datenbank-API-Funktionen direkt in den Anwendungscode, ohne Zwischen-Wrapper verwenden, dann PDO ist die einzige Wahl, wie es bereits eine Art Wrapper ist, die Automatisierung von vielen Operationen, die mit mysqli manuell durchgeführt werden müssen.

Nein, es gibt keine Migrationsoptionen, da der Ansatz sehr stark geändert wird: Statt Variablen direkt in die Abfrage einzufügen, müssen sie in der Abfrage durch spezielle Markierungen ersetzt werden. Es gibt keine Möglichkeit, diesen Prozess zu automatisieren.

+0

PDO ist nicht Ihre einzige Wahl. mysqli_ ist auch eine Wahl. Und in mancher Hinsicht eine bessere Wahl, da es besser mit mysql_ vergleichbar ist. Abhängig davon, wie viel Umschreiben gewünscht oder sogar erlaubt ist, ist PDO möglicherweise nicht einmal eine machbare Wahl. – jmarkmurphy

+0

@jmarkmurphy ein anderer kann nicht lesen. Warum ich nicht überrascht bin. –

+0

@jmarkmurphy Ihr Kommentar ist sachlich falsch. Man kann nicht behaupten, dass "mysqli" besser ist als "PDO" wenn: 1) "mysqli" nur mit MySQL 2 funktioniert "mysqli" hat eine komplexere Schnittstelle 3) Vergleichbar mit "mysql_" ist ein Schritt zurück, nicht vorwärts - Daher ist es nicht besser. Zu behaupten, dass PDO nicht einmal eine machbare Wahl wäre, ergibt keinen Sinn, ist nicht mit einem einzigen beweisbaren Beweis belegt und ist nur deine * Meinung *. Und Sie wissen, was sie über Meinungen in einem Bereich sagen, der auf Mathematik und Logik beruht? –

-2

PDO und MySQli werden beide für die Datenbankverbindung verwendet und beide haben ihren eigenen Vorteil. Bei näherer Betrachtung gewinnt PDO den Kampf, aber wenn Sie wirklich bei nur einem Datenbankanbieter bleiben, dann ist meine persönliche beste Wahl die Verwendung von MySQLi.

Sie werden auch einige gute Punkte aus extrahieren: http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059

4

Ermöglicht bei diesen beiden Erweiterungen einen Blick darauf werfen.

PDO

PDO ist Datenbank neutral - Sie benötigen nur eine API zu lernen, mit Dutzenden von databases

So zu arbeiten, wenn Sie sich entschließen, in eine andere Datenbank zu bewegen, das einzige, was Sie würde sich ändern ist der DSN (Datenquellenname).

Unterstützung von beiden Namen und '?' Platzhalter für vorbereitete Anweisungen.

Drupal verwendet PDO.

Mysqli

Auf der anderen Seite Mysqli ist speziell für Mysql Datenbanken entworfen und wird von Mysql empfohlen. Mysqli arbeitet mit Mysql und MariaDB Datenbanken.

Unterstützung von nur '?' Platzhalter für vorbereitete Anweisungen.

Joomla verwendet Mysqli

Fazit

Es gibt viele widersprüchliche Argumente Wetter Mysqli oder PDO schneller läuft. Sowohl Mysqli als auch PDO verwenden die gleichen zugrunde liegenden Treiber für den Zugriff auf die Datenbank, so dass die Leistung keinen Vergleich wert ist.

So gibt es keinen klaren Gewinner bei der Arbeit mit Mysqli oder PDO. Nehmen wir an, Sie verwenden Mysqli und später möchten Sie eine andere Datenbank verwenden. Dies wäre ein schwieriger Übergang.

Die Hauptstärke von PDO gegenüber Mysqli ist Name Platzhalter für vorbereitete Aussagen und deshalb wählte ich PDO über Mysqli.

+0

Haben Sie jemals versucht, in eine andere Datenbank zu wechseln, indem Sie das "DNS" ändern? –

+0

@YourCommonSense, danke für das Aufzeigen :) – user3284463

+0

Die Frage war nicht der dumme Tippfehler, sondern Ihre tatsächliche Erfahrung mit dem Wechseln der Datenbank-Backends durch einfaches Ändern von DSN. –