Maison > base de données > tutoriel mysql > le corps du texte

Comment corriger les erreurs « Fonctions mysql_* obsolètes » après la mise à niveau de PHP ?

Barbara Streisand
Libérer: 2024-11-09 10:25:02
original
852 Les gens l'ont consulté

How to Fix

Gestion des erreurs après la mise à niveau de PHP : fonctions mysql_* obsolètes

Comme vous l'avez découvert lors de la mise à niveau de PHP 5.2 vers 5.5, plusieurs de vos Les extraits de code PHP rencontrent des erreurs liées aux fonctions mysql_* obsolètes ou obsolètes. Explorons ces problèmes et proposons des solutions.

Fonction mysql_real_escape_string() obsolète

La fonction mysql_real_escape_string() est utilisée pour se protéger contre les attaques par injection SQL. Cependant, il a été obsolète dans les versions plus récentes de PHP au profit d'une alternative plus sécurisée.

Solution : Remplacez mysql_real_escape_string() par mysqli_real_escape_string() pour garantir une fiabilité continue.

Nombre d'arguments incorrect pour mysqli_real_escape_string()

La fonction mysqli_real_escape_string() nécessite deux arguments : la ressource de connexion et la chaîne à échapper. Dans votre exemple, vous ne fournissez qu'un seul argument.

Solution : Établissez une connexion à la base de données et transmettez la ressource de connexion à mysqli_real_escape_string() comme premier argument. La syntaxe pour établir une connexion ressemble à ceci :

<code class="php">$connection = mysqli_connect("host", "my_user", "my_password", "my_db");</code>
Copier après la connexion

Option alternative : objets de base de données

Au lieu de transmettre manuellement la ressource de connexion à chaque fois, vous pouvez utiliser un objet de base de données pour simplifier le processus. Cette approche implique de configurer un objet de base de données comme suit :

<code class="php">$mysqli = new mysqli("host", "my_user", "my_password", "my_db");</code>
Copier après la connexion

Une fois que vous avez créé l'objet de base de données, vous pouvez utiliser ses fonctions intégrées pour effectuer des opérations de base de données sans transmettre explicitement la ressource de connexion. Par exemple :

<code class="php">$result = $mysqli->query("SELECT * FROM login WHERE username = '{$username}' AND password = '{$password}' AND status=1");</code>
Copier après la connexion

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!