Maison > base de données > tutoriel mysql > Pourquoi mes fonctions mysql_* sont-elles obsolètes après la mise à niveau de PHP ?

Pourquoi mes fonctions mysql_* sont-elles obsolètes après la mise à niveau de PHP ?

Patricia Arquette
Libérer: 2024-11-05 13:33:02
original
765 Les gens l'ont consulté

Why Are My mysql_* Functions Deprecated After Upgrading PHP?

Fonctions mysql_* obsolètes après la mise à niveau de PHP : résolution

Après la mise à niveau de PHP 5.2.0 vers 5.5.0, des problèmes peuvent survenir lors de la tentative pour utiliser les fonctions mysql_*. Cela est dû à la dépréciation de ces fonctions.

Erreur rencontrée : mysql_real_escape_string() obsolète

Pour résoudre ce problème, remplacez mysql_real_escape_string() par son homologue modernisé : mysqli_real_escape_string( ).

Erreur rencontrée : mysqli_real_escape_string() attend 2 paramètres

Lors de l'utilisation de mysqli_real_escape_string(), il nécessite deux arguments : la variable de connexion et la chaîne à échapper.

Exemple de code avec modifications :

<?php
$connection = mysqli_connect("host", "my_user", "my_password", "my_db");
$username = mysqli_real_escape_string($connection, $username);
$password = mysqli_real_escape_string($connection, $password);

$query = "SELECT * FROM login WHERE username = '{$username}' AND password = '{$password}' AND status=1";
Copier après la connexion

Envisagez d'utiliser une approche orientée objet

Pour une maintenabilité accrue, envisagez en utilisant une classe d'objet de base de données, qui encapsule les détails de connexion :

<?php
class Database {
    private $connection;

    public function __construct($host, $user, $password, $database) {
        $this->connection = mysqli_connect($host, $user, $password, $database);
    }

    public function escape($string) {
        return mysqli_real_escape_string($this->connection, $string);
    }

    // Other database operations...
}
Copier après la connexion

Conclusion :

En suivant ces directives, les développeurs peuvent résoudre avec succès les problèmes de dépréciation rencontrés avec mysql_ * fonctions après la mise à niveau de PHP.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal