【问题标题】:Can't update row in database无法更新数据库中的行
【发布时间】:2014-10-10 07:00:16
【问题描述】:

我尝试更新数据库中的一行,但我做不到。这是我的sql:

$sql = "UPDATE `voting_nomination_counter` 
 SET  `quantity`=quantity+1 
 WHERE `nid` = '$nid'  
 AND nominee = '$nominee'";

我怀疑问题出在这里 - AND nominee = '$nominee'"; 因为当我从查询中删除它时,一切正常并且更新正常。请帮忙。

【问题讨论】:

  • 如果您没有收到 sql 错误(假设您已显示错误)输出 sql 查询字符串并查看变量是否符合您的预期。
  • 检查你在$nominee中是否有任何价值

标签: php mysql sql drupal-7


【解决方案1】:

试试这个:

$sql = "UPDATE voting_nomination_counter SET quantity=quantity+1 WHERE nid = '$nid' AND nominee = '$nominee'";

【讨论】:

  • 除了删除原始 SQL 中完全可以使用的反引号之外,这里有什么不同吗?
【解决方案2】:

我解决了这个问题,如果我想更新WHERE string = string我只需要使用这个语句UPDATE table SET field = REPLACE(field, 'string', 'anothervalue') WHERE field LIKE '%string%';,谢谢大家!)

【讨论】:

    【解决方案3】:

    @excluded_once 看起来您能够解决您的问题。所以以后不要直接在 SQL 字符串中使用变量名。始终使用 db_query 或 db_select 然后始终将变量绑定到 SQL 中,这将帮助您防止 SQL 注入和其他攻击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 2019-04-27
      • 2015-07-03
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      相关资源
      最近更新 更多