使用相同的查询更新两行

时间:2013-03-21 23:37:09

标签: php mysql

我想要做的是使用相同的查询更新两行。我有这个:

 $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 个答案:

答案 0 :(得分:3)

您的意思是更新2列吗?这是您的第二个查询尝试执行的操作。试试这个:

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

答案 1 :(得分:-2)

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

您可以用逗号分隔字段/值。

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

注意:上述查询容易受SQL Injection影响,因为用户可以将任何内容传递给$ _GET变量。这可以恶意用于更改您的查询。

用于更新更新查询中的多行:

只有相同的数据可以放在多行中。您修改where语句以逻辑地包括应更新的行。如果每行的数据不同,那么这是不可能的,但您可以使用prepared statements

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