Maison  >  Article  >  base de données  >  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
DDDoriginal
2024-10-31 09:10:29214parcourir

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>

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>

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>

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

<code class="php">$stmt->execute();</code>

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>

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

<code class="php">$stmt->close();</code>

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