特定用户

时间:2016-11-14 16:34:28

标签: php mysql database

我正在使用用户帐户系统,我需要更新SQL数据库中的记录。我试过了,但我发现的所有解决方案似乎都不起作用。我的表看起来像这样

   userId userName userCoins
     30      Bob       0

我想要更新userName,使其看起来像这样

userId userName userCoins
 30      jim       0

-

<?php
    ob_start();
    session_start();
    include_once 'dbconnect.php';

    $res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
    $userRow=mysql_fetch_array($res);
    if ( isset($_POST['btn-signup']) ) {
        //This is where I am trying to update

        UPDATE users SET userName = 'jim' WHERE userCoins=0;
    }
?>
<!DOCTYPE html>
<html>
    <?php header("Access-Control-Allow-Origin: http://www.py69.esy.es"); ?>
    <head></head>
    <body>
        <center>
        <h3>Welcome, <?php echo $userRow['userName']; ?>. You Currently Have <span id="services"><?php echo $userRow['userCoins']; ?></span> Service Coins</h3>
            <div class="form-group">
                <div class="input-group">
                    <span class="input-group-addon"><span class="glyphicons glyphicons-lock"></span></span>
                    <input type="text" id="emp_id" name="sender" class="form-control" placeholder="Enter Your Wallet Key" value="<?php echo $row['userCoins']; ?>" maxlength="15" />
                    <span class="text-danger"><?php echo $error; ?></span>
                </div>
            </div>
            <div class="form-group">
                <button type="submit" class="btn btn-block btn-primary" name="btn-signup">Sign Up</button>
            </div>
        </center>
    </body>
</html>
<?php ob_end_flush(); ?>

2 个答案:

答案 0 :(得分:3)

您需要使用该函数并使用它周围的引号(类似地)用于SELECT:

if ( isset($_POST['btn-signup']) ) {
        //This is where I am trying to update

       mysql_query("UPDATE users SET userName = 'jim' WHERE userCoins=0");
    }

您还使用旧API,并且可以使用SQL注入。

使用准备好的陈述。

参考文献:

并且如评论中所述:

  

为什么要根据userCoins = 0进行更新?这将更新每个用户的名称,其中包含零(无)硬币。这真的是你想要做的吗? - 查尔斯布雷塔纳

因此,您可能需要添加一个附加条款。

您还需要确保$_SESSION['user']数组确实包含值。否则,您的查询将失败。

检查错误:

答案 1 :(得分:0)

您可以将查询编写为:

UPDATE users SET userName = 'jim' WHERE userId=30;