Mysql 更新用户名 [已关闭]

Mysql Update a username [closed]

提问人:Даниел Димитров 提问时间:11/16/2013 更新时间:11/17/2013 访问量:551

问:


10年前关闭。

  • 要求提供代码的问题必须表现出对所解决问题的最低限度的理解。包括尝试的解决方案、它们不起作用的原因以及预期结果。另请参阅:堆栈溢出问题清单
  • 关于你所写的代码问题的问题,必须在问题本身中描述具体问题,并包括重现它的有效代码。有关指导,请参阅 SSCCE.org

我试图更新视图并再添加 1 个视图,这就是代码

$sql = mysql_query("SELECT * FROM `skins` WHERE `username` = '$name'");
while ($row = mysql_fetch_assoc($sql)) {
    $id = $row['id'];
    $username = $row['username'];
    $views = $row['views'];
    $rank = $row['rank'];
    $addv = $views + 1;
    echo "id $id HI $username, gledaniq $views rank $rank sled gledaneto trqbva da ima $addv";
    $sql2 = "UPDATE `skins` SET `views` = `$addv` WHERE `username` = `$username`";
    $sql3 = mysql_query($sql2);
}
php mysql sql

评论


答:

-1赞 Shankar Narayana Damodaran 11/16/2013 #1

在你的语句中,不要在这里使用反引号,而是使用单引号$sql2

$sql2 = "UPDATE `skins` SET `views` = `$addv` WHERE `username` = `$username`";
                                    --^-----^               -----^---------^
0赞 OGHaza 11/17/2013 #2

Shankar 是正确的,但你不应该简单地做(在循环之外):

$sql2 = "UPDATE `skins` SET `views` = `views`+1 WHERE `username` = '$name'";
$sql3 = mysql_query($sql2);

现在,如果第一个查询返回 1 个以上的结果,则每个“外观”上的视图将增加 1 个以上(如果第一个查询返回 3 个外观,则将为每个外观添加 3 个视图)。