更新 mysql if 语句 (PHP)



我试图用php构建一个简单的基于文本的游戏来学习php。问题是如果我满足某些参数,我如何更新数据库表。 1个营房花费3000,我想检查用户是否获得了3000或更多。然后更新或说您需要更多钱。

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "phpsamples";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = UPDATE tbl_registered_users
SET     barracks = IF(money = '>3000', barracks + 1)
WHERE   id = 1";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
UPDATE table SET
money = money - 3000,
barracks = barracks + 1
WHERE id=1 
AND money>= 3000

这将提高barracks并减少用户id=1的钱,只有当他有 3000 或更多的钱时。

要检查更新是否应用(即用户是否确实有钱(,您可以使用 mysqli_affected_rows((,它

返回受上一个插入、更新、替换或删除查询影响的行数。

如果它返回0则由于未满足WHERE子句而没有更新,因此您可以发送"资金不足"消息。

如果它返回1则满足WHERE子句,并且用户还有一个军营。

最好按用户 ID 获取特定用户。然后检查参数并更新。

$query = $conn->query("select * from tbl_registered_users where id = 1");
if ($query->num_rows > 0) {
$row = $query->fetch_assoc();
if($row["money"] > 3000) {
$conn->query("update tbl_registered_users set barracks = barracks + 1 where id = 1");
}
}

最新更新