所以我对编码相当陌生,并且刚刚开始一个有趣的项目。我尝试构建一款RPG游戏,我已经到了玩家可以战斗和受到伤害的地步。所以我想添加一个被动的健康再生。
所以我在想我会使用 conjob 每 10 分钟请求一个 php 文件,并使用 +10 更新所有玩家的 HP。
我用我非常糟糕的 MySQL 知识得到的是;
<?php
/*
* hp_reg.php, auto updater +10hp to players.
*/
//DATABAS CONNECTION
$dbserver="my";
$dbusername ="db";
$dbpassword ="conection";
$db ="information";
//CREATE CONNECTION
$conn = new mysqli($dbserver, $dbusername, $dbpassword, $db);
$query = "SELECT health FROM users";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($query);
$newhp = $result + 10;
$sql = "INSERT INTO users(health) VALUES ($newhp)";
显然根本行不通!关于要更改哪些内容才能使其正常工作的任何提示?非常感谢所有指针。
$sql = "UPDATE users SET health = health + 10";
更新的代码
<?php
/*
* hp_reg.php, auto updater +10hp to players.
*/
//DATABAS CONNECTION
$dbserver="my";
$dbusername ="db";
$dbpassword ="conection";
$db ="information";
//CREATE CONNECTION
$conn = new mysqli($dbserver, $dbusername, $dbpassword, $db);
$sql = "UPDATE users SET health = health + 10";
$result = mysqli_query($conn, $sql);
要将所有用户的health
列增加 10,可以执行以下查询:
UPDATE users SET health = health + 10
假设:
- 您想要更新一个用户的
health
; - 每个用户都有一个唯一的ID;
- 唯一 ID 作为
userID
存储在数据库中(如果没有,请使用正确的字段名称进行更改);
你必须这样尝试:
$query = "SELECT health FROM users WHERE userID='$userID'";
$result = mysqli_query( $conn, $query );
$row = mysqli_fetch_assoc( $query );
$newhp = $row['health'] + 10;
$query = "UPDATE users SET health='$newhp' WHERE userID='$userID'";
$result = mysqli_query( $conn, $query );
最后,看看如何在PHP中防止SQL注入以及如何检查结果是否为空