Maison > Article > base de données > Pourquoi mes fonctions mysql_* sont-elles obsolètes après la mise à niveau de 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";
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... }
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!