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

source:php.cn
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