【问题标题】:Truncated incorrect DOUBLE value截断不正确的 DOUBLE 值
【发布时间】:2011-05-07 12:03:12
【问题描述】:

我目前遇到了UPDATE 查询的问题。我要运行的是:

dbquery("UPDATE users SET vip_points = 'vip_points' +'". $points ."' WHERE username = '". $user ."'");

$user$points 通过表单发送。我已经尝试回显结果,它们会出现在我发布的内容中。

数据库错误

截断不正确的 DOUBLE 值:'vip_points'

那么有人可以解释一下我的查询出了什么问题吗?它适用于其他 MySQL 服务器。目前我在 Windows 2008 下使用 MySQL server 5.5。

哦,vip_points 列默认设置为 0。

谢谢。

【问题讨论】:

  • [1] 你忘了说$points$user 的值是什么。 [2] 永远不会发送一个查询,其中包含直接来自<form> 内部的值。谷歌“PHP SQL 注入”找出原因。

标签: php mysql


【解决方案1】:

您引用了不应引用的值。试试这个:

dbquery("UPDATE users SET vip_points = vip_points + ". ... ." where username = '". $user ."'");

【讨论】:

  • 这是你的答案,只要它是整数值,也不需要 $points 周围的单引号。 (使用(int)$points
  • 道歉。并且使用内置的 CMS 过滤功能和 mysql_real_escape_string 过滤帖子。这也在管理员面板中,而不是公开的。一旦我了解了更多信息,我计划进行预先准备好的查询。 $user 的值显然是用户名,vip 指向一个数字。
猜你喜欢
  • 1970-01-01
  • 2015-08-07
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
  • 2023-03-28
相关资源
最近更新 更多