Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich alten PHP-Code mit veralteten „mysql_*“-Funktionen neu schreiben?

Wie kann ich alten PHP-Code mit veralteten „mysql_*“-Funktionen neu schreiben?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 09:43:30809Durchsuche

How can I rewrite legacy PHP code using deprecated `mysql_*` functions?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn