Maison > base de données > tutoriel mysql > Comment mettre à jour les données en toute sécurité dans MySQL à l'aide d'instructions préparées ?

Comment mettre à jour les données en toute sécurité dans MySQL à l'aide d'instructions préparées ?

DDD
Libérer: 2024-10-31 09:10:29
original
300 Les gens l'ont consulté

How to Update Data Securely in MySQL using Prepared Statements?

Utilisation d'instructions préparées pour les requêtes de mise à jour

Lors de l'exécution de requêtes de mise à jour avec PHP et MySQL, il est recommandé d'utiliser des instructions préparées pour garantir l'intégrité des données et empêcher l'injection SQL. Lors d'une récente discussion sur l'instruction UPDATE de MySQL, un utilisateur a demandé des conseils sur la façon d'utiliser les instructions préparées.

Solution

Dans MySQL, les instructions préparées suivent un format similaire à INSERT ou des instructions SELECT. Pour utiliser une instruction préparée pour une requête UPDATE, remplacez simplement toutes les valeurs de variable par des espaces réservés représentés par le point d'interrogation (?):

<code class="php">$sql = "UPDATE Applicant SET phone_number=?, street_name=?, city=?, county=?, zip_code=?, day_date=?, month_date=?, year_date=? WHERE account_id=?";</code>
Copier après la connexion

Une fois l'instruction SQL préparée, créez un objet d'instruction préparée :

<code class="php">$stmt = $db_usag->prepare($sql);</code>
Copier après la connexion

Ensuite, liez les paramètres à l'instruction préparée. L'exemple suivant suppose que les paramètres date et account_id sont des entiers (d), tandis que les paramètres restants sont des chaînes (s) :

<code class="php">$stmt->bind_param('sssssdddd', $phone_number, $street_name, $city, $county, $zip_code, $day_date, $month_date, $year_date, $account_id);</code>
Copier après la connexion

Exécutez l'instruction préparée :

<code class="php">$stmt->execute();</code>
Copier après la connexion

Handle des erreurs si elles se produisent :

<code class="php">if ($stmt->error) {
  echo "FAILURE!!! " . $stmt->error;
}
else echo "Updated {$stmt->affected_rows} rows";</code>
Copier après la connexion

Enfin, fermez la déclaration préparée :

<code class="php">$stmt->close();</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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal