MySQLI Update set +1 正确的形式和符号

MySQLI Update set +1 the correct form and symbols

编辑; 没有错误,所有其他事情都有效,但更新我只是没有 +1 :( 没有任何更新 - 也许是因为我使用了错误的引号?

我正在互联网上寻找一些人使用以下类型的查询

UPDATE `attempts` SET `fails` = fails+1 WHERE id='3'"

我很困惑,因为别人用

UPDATE `attempts` SET `fails` = `fails` +1 WHERE id='3'"

UPDATE `attempts` SET `fails` = +1 WHERE id='3'"

插入 MySQL 时哪种形式是正确的,我的意思也是使用的符号。有些人使用其他人不使用的符号,这让我感到困惑。这个问题是关于插入数据时的符号和正确形式

只需要知道在这个查询中何时使用 `` when ' ' 和 when " " 的正确形式是什么

  • ` 用于表示对象名称,例如 table 或列
  • ' 用于表示字符串文字

所以,假设 id 是数字,正确的语法应该是:

UPDATE `attempts` SET `fails` = `fails` + 1 WHERE id = 3

使用 SET fails = +1 不会递增 fails,它只会将其设置为正数 1。

"Please add it as answer to mark it as correct – Cardinale 4 mins ago"

多次评论后:

您的 fails 栏的长度设置得太短;你需要增加它。

fails INT 1fails INT 10

此外,您可以使用任何现有查询,但删除

中的引号
WHERE id='3'

这是一个整数

WHERE id=3

编辑: 添加了带有准备语句的 PDO 示例;调整以适应。

<?php 
$servername = "xxx"; // Modify
$username   = "xxx"; // these
$password   = "xxx"; // for
$dbname     = "xxx"; // your own

try {

    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $query = 'UPDATE `your_table` SET col = col + 1 WHERE id = :id';
    $stmt = $conn->prepare( $query );
    $stmt->execute(array(':id' => $userid));

     }
catch(PDOException $e) {
     echo "Error: " . $e->getMessage();
}
$conn = null;