MySQLI 更新设置+1的正确形式和符号。

4

编辑: 没有错误,其他所有功能都正常工作,但在更新时我只得到了没有+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中插入数据时,哪种形式是正确的,我指的是使用的符号。有些人使用符号,其他人则不使用,这让我感到困惑。此问题涉及符号和插入数据时正确的形式。

只需要知道在此查询中何时使用“`”、“'”和“"”,即可确定正确的形式。

2个回答

2

"请将其添加为答案以将其标记为正确 - Cardinale 4分钟前"

多次评论后:

您的fails列长度设置得太低,需要增加长度。

fails INT 1 更改为 fails 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;

如果我更新了IP地址,那么加引号是正确的吗?非常感谢。 - Cardinale
@Cardinale 是的,例如 UPDATE attempts SET fails = +1 WHERE id=3 AND IP='123.456.789'。不客气。 - Funk Forty Niner

1
  • “`”用来表示对象名称,例如表或列
  • “'”用来表示字符串文字

因此,假设id是数字,正确的语法应该是:

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

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

@Cardinale 如果您认为任何答案有用/有帮助,您可以点赞它! - Rizier123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接