不能在SQL中为用户变量增加1


Can't add 1 to a user-variable in SQL incrementally

这可能是由于变量@count未被识别为整数,但在我的研究中,我遇到了许多类似于@count = @count + 1的例子;这就是为什么我很困惑为什么引入这个会破坏我的代码:

$setCount = "SELECT @count:=5";
$uncategorise = "UPDATE pictures
    SET category = '0',
    pictureorder = @count,
    @count:=@count+1
    WHERE category = '$categoryID'
    AND username = '$username';
$queryCount = mysql_query($setCount) or die(mysql_error());
$queryUncat = mysql_query($uncategorise) or die(mysql_error());

因为这是一个用户定义的变量,

可以将值存储在一个语句中的用户定义变量中,然后在另一个语句中引用它。这使您能够将值从一个语句传递到另一个语句。用户定义的变量是特定于连接的。也就是说,一个客户机定义的用户变量不能被其他客户机看到或使用。当客户端退出时,将自动释放给定客户端连接的所有变量。

有一个简单的解决方案——php mysqli_multi_query

您可以在DB中创建一个字段来进行计数,然后从中检索数据。