php - SQL Query 在没有 WHERE 的情况下工作,但是一旦我添加 WHERE 语句,它就无法正常运行
问题描述
我正在编写一个 SQL 查询,如下所示执行良好,但它会更新所有行。
mysqli_query($connection, 'UPDATE users SET hashed_pass = ' . mysql_escape($newpassword).'');
但是,一旦我尝试通过添加 WHERE 语句为其添加一些逻辑,我就不会收到任何错误,但它不会更新目标用户的密码。我希望语句更新,在这种情况下,用户 569(这是 $user_id 等于)。
mysqli_query($connection, 'UPDATE users SET hashed_pass = ' . mysql_escape($newpassword).' WHERE user_id ='.mysql_escape($user_id).'');
mysql_escape 函数只是去除斜杠并转义变量,所以我知道这不是原因。我还确保该表确实有 user_id 列,变量 $user_id 是 569,它与我要更新的用户匹配。运行命令后,我没有收到任何错误,并且在查询下有一个 echo 语句以确认它已运行。
任何想法我做错了什么?
更新:正如每个人建议的那样,我将我的代码转换为准备好的语句,它现在可以工作了。
$stmt = mysqli_prepare($connection, "UPDATE users SET hashed_pass = ? WHERE user_id = ?");
mysqli_stmt_bind_param($stmt, "si", $newpassword, $user_id);
mysqli_stmt_execute($stmt);
解决方案
使用准备好的语句将是第一步。PHP mysqli_prepare
$stmt = mysqli_prepare($connection, "UPDATE users SET hashed_pass = ?")
mysqli_stmt_bind_param($stmt, "s", $citynewpassword);
mysqli_stmt_execute($stmt);
推荐阅读
- javascript - 将值设置为数组的方法 (JavaScript)
- php - 在 wordpress 中保存页面添加
- python - 'NoneType' 对象在循环中附加到列表时没有属性 'append'
- javascript - 刷新“时间功能”
- asp.net-core - 发布后 ASPNET Core ScrollTo
- pyqt - PyQt4 用于重叠矩形项目的工具提示
- angular - Angular 到后端服务的流程如何?
- c - 如何使用 CMSIS API 将无符号整数转换为枚举
- vba - vba在excel单元格整数的函数中添加形状(星号)
- java - 无法使用java在couchbase中搜索记录