更新 MySQL 表中单个列的最佳方法


Best way to update a single column in MySQL table?

所以我对编码相当陌生,并且刚刚开始一个有趣的项目。我尝试构建一款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

假设:

  1. 您想要更新一个用户的health;
  2. 每个用户都有一个唯一的ID;
  3. 唯一 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注入以及如何检查结果是否为空