首页  >  文章  >  数据库  >  如何使用准备好的语句在 MySQL 中安全地更新数据?

如何使用准备好的语句在 MySQL 中安全地更新数据?

DDD
DDD原创
2024-10-31 09:10:29212浏览

How to Update Data Securely in MySQL using Prepared Statements?

使用预备语句进行更新查询

使用 PHP 和 MySQL 执行更新查询时,建议使用预备语句以确保数据完整性并防止SQL注入。在最近关于 MySQL 的 UPDATE 语句的讨论中,用户寻求有关如何使用准备好的语句的指导。

解决方案

在 MySQL 中,准备好的语句遵循与 INSERT 类似的格式或 SELECT 语句。要对 UPDATE 查询使用准备好的语句,只需将所有变量值替换为问号 (?) 表示的占位符:

<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>

准备好 SQL 语句后,创建一个准备好的语句对象:

<code class="php">$stmt = $db_usag->prepare($sql);</code>

接下来,将参数绑定到准备好的语句。以下示例假设 date 和 account_id 参数为整数 (d),其余参数为字符串 (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>

执行准备好的语句:

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

处理如果发生任何错误:

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

最后,关闭准备好的语句:

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

以上是如何使用准备好的语句在 MySQL 中安全地更新数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn