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

Wie kann man alten mysql-php-Code erfolgreich mit veralteten mysql_*-Funktionen umschreiben?

Eigentlich ein einfaches, süßes und kurzes:Ja, nicht mehr nötig.

Lassen Sie uns den Code überprüfen, nicht dass wir etwas verloren haben:

  • __construct - Der Konstruktor enthielt lediglich die gesamte Konfiguration. PDO hat hier ein viel einfacheres Konzept, eine Verbindungszeichenfolge, die die meisten Informationen enthält:

     mysql:host=127.0.0.1;dbname=people;charset=UTF-8
    

    Auch PDO stellt den Konstruktor fertig zur Verwendung zur Verfügung, also nicht doppelt nötig.

  • connect - Die Verbindungsfunktion wird ebenfalls nicht mehr benötigt. Dies geschieht bereits durch Instanziieren von PDO. Sie können nach Ausnahmen suchen, das PHP-Handbuch hat ein Beispiel auf seiner Konstruktorseite .

  • selectDb - Auch diese umständliche Funktion wird nicht mehr benötigt. Wow, die dritte Funktion können wir wegen der PDO-Verbindungszeichenfolge einfach weglassen. Viel Power mit so wenig Zeichen. Prost!

  • __destruct - Der Destruktor. Seien wir fair:MySQL brauchte das auch nicht. Aber mit PDO bekommen wir es kostenlos - ohne eine einzige Zeile Code zu schreiben.

Sieht gut aus! Sie haben es geschafft, von dieser obskuren Datenbankklasse zu PDO zu migrieren, indem Sie veralteten Code entfernt haben! Herzlichen Glückwunsch:

$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

Wenn Sie jetzt denken, wie wäre es, wenn ich alleine Datenbankunterricht haben möchte? Nun, das können Sie tun, weil Sie von PDO erweitern können (ja, das funktioniert!):

class DB extends PDO
{
   ... my super-new-shiny-code
}

Warum möchten Sie das vielleicht tun? Keine Ahnung, aber vielleicht ist es flüssiger für Ihren Code. Wenn Sie nach einem besseren Codebeispiel suchen, habe ich eines unter PHP/MySQL-Tabelle mit Hyperlinks .