Maison  >  Article  >  développement back-end  >  Comment puis-je réécrire le code PHP existant à l'aide des fonctions obsolètes `mysql_*` ?

Comment puis-je réécrire le code PHP existant à l'aide des fonctions obsolètes `mysql_*` ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 09:43:30815parcourir

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

Réécriture du code PHP hérité avec des fonctions mysql_* obsolètes

Comme vous l'avez découvert, les fonctions mysql_* en PHP ont été obsolètes pour des raisons de sécurité et des problèmes de stabilité. Pour réécrire efficacement votre code, tenez compte des directives suivantes :

1. Passez au PDO ou aux instructions préparées :

Remplacez les fonctions mysql_* par des instructions PDO ou préparées pour améliorer la sécurité et éviter les vulnérabilités d'injection SQL.

2. Reconfigurer la connexion à la base de données :

La connexion à la base de données doit être établie à l'aide d'une chaîne de connexion au lieu de paramètres individuels. Par exemple :

<code class="php">$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>

3. Supprimez le constructeur et le destructeur inutiles :

Les fonctions telles que __construct et __destruct ne sont plus nécessaires avec PDO. PDO gère la connexion et le nettoyage de la base de données en interne.

4. Sélection simplifiée de la base de données :

Pour sélectionner une base de données avec PDO, utilisez la méthode exec :

<code class="php">$db->exec("USE " . $database);</code>

5. Envisagez l'extension de classe de base de données :

Si vous le souhaitez, vous pouvez étendre PDO pour créer votre propre classe de base de données avec des fonctionnalités personnalisées.

Exemple de réécriture :

Votre script original peut être réécrit comme suit à l'aide de PDO :

<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>

N'oubliez pas que le passage à PDO ou aux instructions préparées améliore non seulement la sécurité, mais simplifie également la maintenance du code et améliore les performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn