我想要做的是使用相同的查询更新两行。我有这个:
$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 ";
在我看来,这看起来合乎逻辑,但它不起作用,任何想法如何做到这一点?谢谢!
答案 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注入。