Maison  >  Article  >  développement back-end  >  Solution à l'erreur fatale PHP : appel à la fonction non définie mysql_escape_string()

Solution à l'erreur fatale PHP : appel à la fonction non définie mysql_escape_string()

WBOY
WBOYoriginal
2023-06-22 18:28:071757parcourir

Avec la popularité d'Internet, le langage PHP est un langage de programmation largement utilisé, et de nombreux sites Web et applications sont conçus et développés en l'utilisant. Cependant, au cours du processus de développement PHP, nous rencontrons souvent des problèmes, dont le message d'erreur « Erreur fatale PHP : appel à la fonction non définie mysql_escape_string() » lors de l'utilisation de la fonction mysql_escape_string().

Ce message d'erreur signifie que la fonction mysql_escape_string() ne peut pas être reconnue ou utilisée dans la version actuelle de PHP. Alors, comment résoudre ce problème ?

  1. Version PHP mise à jour

Étant donné que la fonction mysql_escape_string() est utilisée dans la version PHP 5.5 ou antérieure, cette erreur peut se produire dans les versions PHP 5.6 et supérieures. Par conséquent, mettre à jour la version PHP est le meilleur moyen de résoudre le problème. Vous pouvez mettre à jour votre version PHP via la commande suivante :

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install php5.6

Après avoir exécuté la commande ci-dessus, vous pouvez installer la version PHP 5.6 sur votre système actuel, puis utiliser la fonction mysql_escape_string() pour résoudre ce problème.

  1. Utilisez plutôt la fonction mysqli_escape_string()

Si vous ne souhaitez pas mettre à niveau votre version PHP, vous pouvez utiliser la fonction mysqli_escape_string() pour remplacer la fonction mysql_escape_string(). Étant donné que la fonction de la fonction mysqli_escape_string() est similaire à la fonction mysql_escape_string(), les deux empêchent les attaques par injection SQL et sont plus sécurisées. Voici un exemple d'utilisation de la fonction mysqli_escape_string() :

$username = mysqli_real_escape_string($conn, $_POST['username'];
$password = mysqli_real_escape_string($conn, $_POST['password']);
$email = mysqli_real_escape_string($conn, $_POST['email']);

Parmi elles, $conn est la variable de connexion à la base de données, et $_POST est le paramètre de type tableau passé par POST. En écrivant des instructions SQL via la fonction mysqli_escape_string(), vous pouvez efficacement empêcher les attaques par injection SQL et échapper aux caractères spéciaux dans la base de données.

  1. Utilisez PDO ou un autre framework ORM

Enfin, vous pouvez également utiliser PDO ou un autre framework ORM (comme Laravel) pour résoudre ce problème. PDO est une couche d'abstraction d'accès à la base de données fournie par PHP, qui nous permet d'exploiter la base de données plus facilement, réduisant ainsi le risque d'erreurs des développeurs. Voici un exemple de code pour un PDO :

$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];

$stmt = $pdo->prepare("INSERT INTO users (username, password, email) VALUES (:username, :password, :email)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->bindParam(':email', $email);

$stmt->execute();

En utilisant des objets PDO, vous pouvez écrire des instructions SQL en toute sécurité pour éviter cette erreur.

Pour résumer, les trois méthodes ci-dessus peuvent vous aider à résoudre l'erreur « Erreur fatale PHP : appel à une fonction non définie mysql_escape_string() », et peuvent également vous aider à améliorer la sécurité et la maintenabilité de votre code. Si vous rencontrez ce message d'erreur, essayez les méthodes ci-dessus pour résoudre le problème.

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