使用相同的查询更新两行


Update two rows with the same query

我想做的是用相同的查询更新两行。我得到的是:

 $sqlUpdate = "UPDATE user.user SET level='2' WHERE id='".$_GET['char']."' AND level >0 AND item>0 LIMIT 1   ";

我的想法是这样做:

 $sqlUpdate = "UPDATE user.user SET level='2' && SET power='1' WHERE id='".$_GET['char']."' AND level >0 AND item>0 LIMIT 1   ";

在我看来,这看起来合乎逻辑,但它不工作,任何想法如何做到这一点?谢谢!

你的意思是更新2列吗?这就是你的第二个问题要做的。试试这个:

$sqlUpdate = "UPDATE user.user SET level='2', power='1' WHERE id='".$_GET['char']."' AND level >0 AND item>0 LIMIT 1   ";

用于在更新查询中更新多个字段:

用逗号分隔字段/值。

$sql = "UPDATE user.user SET level='2', power='1' WHERE id='" . $_GET['char'] . "' AND level > 0 AND item > 0 LIMIT 1;";

注意:上面的查询容易受到SQL注入的攻击,因为任何东西都可以被用户传递给$_GET变量。

在更新查询中更新多行:

只能在多行中放置相同的数据。修改where语句,使其在逻辑上包含应该更新的行。如果每行数据不同,那么这是不可能的,但是您可以使用预处理语句。

预置语句允许您为将多次运行的查询设置模板。然后你就可以传递值了。大多数数据库将缓存查询,从而提高性能。它还通过将查询与数据分离来防止SQL注入。