12 Stimmen

Umstellung von mysql auf mysqli oder pdo?

Duplikat: mysqli oder PDO - was sind die Vor- und Nachteile?

Ich bin auf der Suche nach einer Website von mysql zu entweder mysqli oder pdo als in erster Linie ein Lernwerkzeug zu verschieben, sondern auch für Leistungssteigerungen, wenn möglich.

Ich habe durchgelesen http://php.net/manual/en/mysqli.overview.php und es sieht so aus, als ob beide meinen Bedürfnissen entsprechen würden, aber es gibt keine eindeutige Tendenz in die eine oder andere Richtung.

Die Website verwendet derzeit hauptsächlich nicht objektorientierten Code, aber ich habe Erfahrung mit OO in anderen Sprachen. Die große Mehrheit der Abfragen sind einfache, komplexe Select-Anweisungen mit sehr wenigen Aktualisierungen/Einfügungen. Was schlagen Sie vor, was sowohl aus meiner eigenen Ausbildung als auch für diese spezielle Website am nützlichsten ist?

Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.

Danke.

1 Stimmen

Wäre dies eine Frage zu cómo zu PDO/MySQLi zu migrieren, dann könnte dies eine nicht-duplizierende, interessante Frage sein!

0 Stimmen

20voto

Noah Goodrich Punkte 24212

PDO Pro's:

  • Nativ für PHP ab Version 5.x
  • Unterstützt benannte Parameter im Gegensatz zu numerisch indizierten ?'s
  • Dieselbe Abstraktionsbibliothek unterstützt mehrere verschiedene RDBMs

Mysqli Con's:

  • Hat Probleme mit der korrekten Speicherung und Abrufen großer Objekte in der Datenbank.
  • Keine Unterstützung für benannte Parameter.

Ansonsten sind beide Bibliotheken im Grunde genommen verschiedene Varianten derselben Sache. Beide haben Funktionen zur Angabe von Parametern und beide unterstützen parametrisierte Abfragen.

Wenn keines der oben genannten Argumente Sie überzeugt, dann nehmen Sie die Bibliothek, die Sie aufgrund ihrer Syntax, ihres Stils usw. bevorzugen.

9voto

OneNerd Punkte 6352

Ich glaube nicht, dass PDO eine Leistungssteigerung bringen würde, aber es bietet Ihnen diese beiden sehr attraktiven langfristigen Vorteile:

  • Sie können Ihre Anwendung mit nur wenigen Code-Änderungen für andere Datenbanken skalieren
  • die PDO-Bibliothek hat einen Großteil der Sicherheit eingebaut

Wenn Sie die Vorteile von #1 und #2 nicht verstehen, dann bleiben Sie einfach bei der bewährten mysql-Bibliothek ( Sie benutzen aber zumindest mysql_real_escape_string, richtig? )?

Wenn ich eine neue PHP-Datenbankbibliothek lernen würde, wäre PDO meiner Meinung nach der richtige Weg, vor allem, wenn Sie eine Webanwendung erstellen, die nicht nur auf Ihrem eigenen Server, sondern auch auf anderen Systemen verwendet werden kann.

8voto

Anas Punkte 81

Von http://www.php.net/manual/en/mysqli.overview.php :

PDO hat zwar seine Vorteile, wie z. B. eine saubere, einfache und portable API, Hauptnachteil ist, dass es Ihnen nicht erlaubt, alle erweiterten fortgeschrittenen Funktionen, die in den neuesten Versionen von MySQL Server verfügbar sind. PDO erlaubt es Ihnen zum Beispiel nicht, die Unterstützung von MySQL zu nutzen für Mehrere Anweisungen.

4voto

Dels Punkte 2357

PDO bieten große Sicherheit als andere ohne viel Ärger, aber für den Übergang würde ich vorschlagen, Sie zu mysqli zu bewegen, da es schneller, einfacher als PDO, und die meisten api / Syntax sind ganz gleich mit der alten mysql-Erweiterung

Hier (scrollen Sie nach unten) finden Sie einen schnellen Vergleich:
PHP und MySQLi

Edit: Sieht aus wie derselbe Link, den Sie bereits gelesen haben, sorry

1voto

Xeoncross Punkte 53024

Bei der Erstellung meiner ORM- und Abstraktionsbibliothek habe ich MySQLi und PDO verwendet, um zu sehen, welche Lösung besser funktioniert. MySQLi war schneller - aber nicht schnell genug, um die Wahl allein darauf zu gründen.

Eine Sache, die MySQLi/MySQL/SQLite oder eine der anderen unabhängigen Bibliotheken gegenüber PDO haben, ist, dass sie die Anzahl der gefundenen Zeilen im Ergebnis zurückgeben, was oft hilft, um zu testen, ob überhaupt Ergebnisse vorliegen. In der Zwischenzeit müssen Sie in PDO entweder die Ergebnisse mit fetchAll() abrufen und mit count() zählen - oder Sie führen vorher eine Zählabfrage durch, um die Anzahl der Ergebnisse zu sehen. Sie müssen sich also anpassen, um dieses Problem auf unterschiedliche Weise zu lösen.

Oh, und am Ende habe ich mich für PDO und nicht für MySQLi entschieden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X