【发布时间】:2021-08-17 20:08:20
【问题描述】:
如果这已经存在,请原谅我,但我没有看到任何与我的问题足够接近的东西来提供任何类型的解决方案或解决路径。
我的查询:
$sql = "UPDATE users SET FirstName=$fname WHERE id=$id";
$fname 确实等于 Jason。但它应该将 sql 字段 FirstName 更改为“Jason”。相反,它试图找到一个名为 Jason 的字段。我曾尝试在“Jason”中进行硬编码,但后来它说有一个意外的字符串。硬编码它实际上会导致问题,因为数据需要是一个变量,以便用户可以将他们的名字更改为他们想要的任何名称。我已经回显了 $id 并且该值正确出现。我的代码在 php 中。
stackoverflow.com 的长期读者,第一次发帖。如果有任何其他可能有用的代码或信息,请告诉我。
编辑:我没有意识到变量也需要在引号内。我假设引号是专门针对硬编码字符串的。将 $fname 放在单引号中作为 '$fname' 解决了它。谢谢大家!!!
【问题讨论】:
-
字符串应该被引用。像这样的查询应该被参数化
-
谢谢@HoneyBadger 和斯图。斯图,我一定会把它添加到我的阅读清单中!
-
注意代码注入