我正在使用用户帐户系统,我需要更新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(); ?>
答案 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;