Alten PHP-Code mit veralteten mysql_*-Funktionen neu schreiben
Wie Sie festgestellt haben, wurden mysql_*-Funktionen in PHP aus Sicherheitsgründen veraltet und Stabilitätsbedenken. Um Ihren Code effektiv neu zu schreiben, beachten Sie die folgenden Richtlinien:
1. Wechseln Sie zu PDO oder vorbereiteten Anweisungen:
Ersetzen Sie mysql_*-Funktionen durch PDO oder vorbereitete Anweisungen, um die Sicherheit zu verbessern und SQL-Injection-Schwachstellen zu vermeiden.
2. Datenbankverbindung neu konfigurieren:
Die Datenbankverbindung sollte mithilfe einer Verbindungszeichenfolge anstelle einzelner Parameter hergestellt werden. Zum Beispiel:
<code class="php">$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>
3. Unnötigen Konstruktor und Destruktor entfernen:
Funktionen wie __construct und __destruct sind mit PDO nicht mehr erforderlich. PDO kümmert sich intern um die Datenbankverbindung und -bereinigung.
4. Vereinfachte Datenbankauswahl:
Um eine Datenbank mit PDO auszuwählen, verwenden Sie die exec-Methode:
<code class="php">$db->exec("USE " . $database);</code>
5. Erwägen Sie die Erweiterung der Datenbankklasse:
Bei Bedarf können Sie PDO erweitern, um Ihre eigene Datenbankklasse mit benutzerdefinierten Funktionen zu erstellen.
Beispiel für eine Umschreibung:
Ihr ursprüngliches Skript kann wie folgt mit PDO umgeschrieben werden:
<code class="php">class dbConn extends PDO { public function connect() { try { parent::__construct('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass'); } catch (PDOException $e) { die('Database connection failed: ' . $e->getMessage()); } } public function selectDb($database) { $this->exec("USE " . $database); $this->query("SET NAMES 'utf8'"); } }</code>
Denken Sie daran, dass der Wechsel zu PDO oder vorbereiteten Anweisungen nicht nur die Sicherheit erhöht, sondern auch die Codepflege vereinfacht und die Leistung verbessert.
Das obige ist der detaillierte Inhalt vonWie kann ich alten PHP-Code mit veralteten „mysql_*'-Funktionen neu schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!