Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum sind die mysql_-Funktionen von PHP veraltet?

Die mysql-Erweiterung ist uralt und existiert seit PHP 2.0, das vor 15 Jahren (!!) veröffentlicht wurde; Das ist ein entschieden anderes Tier als das moderne PHP, das versucht, die schlechten Praktiken seiner Vergangenheit abzustreifen. Die mysql-Erweiterung ist ein sehr roher Low-Level-Connector zu MySQL, dem viele Komfortfunktionen fehlen und der daher schwer korrekt anzuwenden ist auf sichere Weise; es ist daher schlecht für Noobs. Viele Entwickler verstehen die SQL-Einschleusung nicht und die mysql-API ist so zerbrechlich, dass es schwierig ist, sie zu verhindern, selbst wenn Sie sich dessen bewusst sind. Es ist voller globaler Zustände (z. B. implizite Verbindungsübergabe), was es einfach macht, schwer zu wartenden Code zu schreiben. Da es alt ist, kann es unangemessen schwierig sein, es auf PHP-Kernebene zu warten.

Die mysqli-Erweiterung ist viel neuer und behebt alle oben genannten Probleme. PDO ist auch ziemlich neu und behebt auch all diese Probleme und mehr.

Aus diesen Gründen* wird die mysql-Erweiterung irgendwann in der Zukunft entfernt. Es hat seinen Job in seiner Blütezeit ziemlich schlecht gemacht, aber es hat es getan. Die Zeit ist vergangen, Best Practices haben sich weiterentwickelt, Anwendungen sind komplexer geworden und erfordern eine modernere API. mysql wird eingestellt, leben Sie damit.

Angesichts all dessen gibt es keinen Grund außer wegen Trägheit weiter zu verwenden.

* Dies sind meine zusammenfassenden Gründe mit gesundem Menschenverstand; die ganze offizielle Geschichte finden Sie hier:https://wiki.php.net/rfc/mysql_deprecation

Es folgen ausgewählte Zitate aus diesem Dokument: