更新 SQL 查询 - 将值设置为 PHP 字符串变量
这可能是一个非常微不足道的问题,但我已经为此苦苦挣扎了一段时间,也尝试在网上寻找答案,但仍然出现错误。
尝试为 PHP/MySql 表单编写一个简单的 UPDATE 查询:
$sql="UPDATE mytable SET numericValue = '".$someid."', description = '".$sometext."' WHERE id='".$myid."' ";
虽然所有数值都可以很好地传递和更新,但我无法获得正确的描述。描述列是 VARCHAR,$sometext 是一个字符串,我无法正确将其转义/用引号括起来。
This is probably a very trivial question but I've been struggling with it for a while and also tried finding answers online and still getting errors.
Trying to write a simple UPDATE query for a PHP/MySql form:
$sql="UPDATE mytable SET numericValue = '".$someid."', description = '".$sometext."' WHERE id='".$myid."' ";
Whilst all numeric values are being passed and updated fine, I can't get the description right. The description column is a VARCHAR and $sometext is a string and I cant get it escaped / wrapped with quotes correctly.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该使用 sprintf,它通过提供占位符(%d 表示小数,%s 表示字符串)来避免字符串混淆。有关更多信息,请参阅手册。
如果 $someText 来自 GET/POST/.. 你应该在它周围包裹一个 mysql_real_escape_string() 以防止 SQL 注入(或使用 PDO 准备好的语句)。
You should make use of sprintf, it avoids string confusion by providing placeholders (%d for decimals, %s for strings). See the manual for more.
If $someText is coming from GET/POST/.. you should wrap a mysql_real_escape_string() around it to prevent SQL injection (or use PDO prepared statements).
我认为你必须担心sql注入。
I think you have to worry about sql injection.