[英]SQL update for specific user
我正在使用用戶帳戶系統,並且需要更新SQL數據庫中的記錄。 我嘗試查找它,但是我發現的所有解決方案似乎都沒有用。 我的桌子看起來像這樣
userId userName userCoins
30 Bob 0
我想更新用戶名,所以它看起來像這樣
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(); ?>
您需要像使用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']
數組確實包含一個值。 否則,您的查詢將失敗。
檢查錯誤:
您可以將查詢寫為:
UPDATE users SET userName = 'jim' WHERE userId=30;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.