【发布时间】:2018-06-15 08:36:49
【问题描述】:
我正在尝试在自定义行中添加 +1。示例:
UPDATE `users` SET `MVP` = `MVP` + 1 WHERE `steam_id` = `%s`;
但什么都没有。怎么了?我认为语法看起来不错。
【问题讨论】:
-
可能在哪里出现问题
我正在尝试在自定义行中添加 +1。示例:
UPDATE `users` SET `MVP` = `MVP` + 1 WHERE `steam_id` = `%s`;
但什么都没有。怎么了?我认为语法看起来不错。
【问题讨论】:
%s 是一个值,所以删除 `
你通常可以在任何地方省略它,除非你使用了一些“倒霉”的列名
UPDATE `users` SET `MVP` = `MVP` + 1 WHERE `steam_id` = %s;
【讨论】:
把 ' 从你正在增加的 MVP 中拿走。
UPDATE `users` SET `MVP` = MVP+1 WHERE `steam_id` = `%s`;
【讨论】:
发布整个代码被剪断。真的不能像那样帮助你。 steam_id 是什么? %s 是什么。你什么时候用实际值替换它?您还应该只使用准备好的语句而不是 DYI。 %s 不是它们在 PDO 或 MYSQLI 中的样子,但确实看起来像一个字符串的占位符。
您还将此标记为插入,但您正在进行更新。
那些`` 有点不必要,从未将它们用于列/表名称,但似乎至少在 mysql 控制台中有效。
截断的 sql 看起来是正确的,假设 MPV 是数字并且 id 是字符串/varchar 并且等于 %s,或者您正在用某些东西替换它。
编辑:正如一些人所说的 %s 是问题,如果它是一个 int 则什么都不用。如果是字符串,请使用单引号或双引号。而且您不需要在其他任何地方使用任何东西,但如果您愿意,您可以这样做。
【讨论】: