【问题标题】:MySQL Update Query - Incremental Number system - Syntax ProblemsMySQL 更新查询 - 增量数字系统 - 语法问题
【发布时间】:2014-08-28 17:07:16
【问题描述】:

我在社交媒体脚本中有一个积分系统,我正在尝试获取它,以便当用户发布帖子时,它会在他们的帐户中添加一个积分。这些点基本上是我的“个人资料”表中的一列,称为“总点数”。

我有一个不能完全工作的基本代码,但代码确实调用了操​​作。所以我知道我的更新代码不正确,但我无法弄清楚是什么。所以它是这样的:

$totalpoints = "UPDATE profiles SET totalpoints = totalpoints + 5 WHERE name = '$name'";

任何人的帮助将不胜感激。

谢谢

【问题讨论】:

  • 这应该可以。在您打开<?php 标记error_reporting(E_ALL); ini_set('display_errors', 1); 后立即将错误报告添加到文件顶部,看看它是否会产生任何结果。您是否收到任何错误/警告,如果有,它们是什么?
  • 无论您使用什么 mySQL 库来运行该查询,都将有一个函数在查询不起作用时告诉您错误信息。你应该使用它。
  • 确保您的列也是int。如果您将其设置为 VARCHAR 或其他类型,则它不适用于 VARCHAR。
  • 好的,所以我将列的类型从 VARCHAR 更改为 INT。我进行了错误检查,结果如下:[2014 年 8 月 28 日 17:41:46 UTC] PHP 警告:Application_Model_Posts::addPost() 缺少参数 5,在 /app/core/controllers 中调用/helpers/AddPostFormLoader.php 在第 111 行,并在第 337 行的 app/core/models/Posts.php 中定义 [28-Aug-2014 17:41:46 UTC] PHP 注意:未定义的变量:app/core/models 中的名称/Posts.php 第 353 行
  • 好吧,在 addPost 函数中 $name 变量没有定义

标签: php mysql system points


【解决方案1】:

sql 语法没有问题,但是您的 $name 可能没有正确转义并导致查询失败,或者 totalpoints 不能递增,因为它的数据类型不正确

【讨论】:

  • 我应该如何正确地转义 $name?我看不出有任何问题:/
  • stackoverflow.com/questions/60174/… 但是,如果您的 $name 类似于 Mike(例如不包含 '),则 $name 不应导致查询失败。如果您的列是正确的数据类型,您将不得不继续调试。
【解决方案2】:

检查您的数据库,您应该确保“totalpoints”存储为数字类型,例如“INT”、“BIG INT”、“DECIMAL”等...

【讨论】:

    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    相关资源
    最近更新 更多