无法逐步向SQL中的用户变量添加1

时间:2011-08-15 13:04:01

标签: php mysql

这可能是由于变量@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());

2 个答案:

答案 0 :(得分:2)

因为这是user defined variable
只能站在/可用于同一会话/连接

  

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

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

答案 1 :(得分:0)

您可以在数据库中创建一个进行计数的字段,然后从那里检索数据。