0

我想做的是用相同的查询更新两行。我所拥有的是:

 $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   ";

在我看来,这看起来合乎逻辑,但它不起作用,你知道如何做到这一点吗?谢谢!

4

2 回答 2

3

你的意思是更新2列?这就是您的第二个查询正在尝试做的事情。尝试这个:

$sqlUpdate = "UPDATE user.user SET level='2', power='1' WHERE id='".$_GET['char']."' AND level >0 AND item>0 LIMIT 1   ";
于 2013-03-21T23:40:08.430 回答
-2

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

您用逗号分隔字段/值。

$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 注入。

于 2013-03-21T23:38:56.333 回答