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

时间:2016-01-28 17:46:00

标签: php mysql

所以我对编码很新,并且刚刚开始了一个有趣的项目。 我尝试建立一个RPG游戏,我已经到了玩家可以战斗并受到伤害的程度。所以我想补充被动的健康再生。

所以我认为我会使用一个魔方每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)";
显然根本不起作用! 有关改变什么以使其发挥作用的任何提示? 所有指针都非常受欢迎。

3 个答案:

答案 0 :(得分:1)

要将所有用户的health列增加10,您可以执行以下查询:

UPDATE users SET health = health + 10

答案 1 :(得分:1)

$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);

答案 2 :(得分:0)

假设:

  1. 您希望一个用户更新health;
  2. 每个用户都有唯一的ID;
  3. 唯一ID以userID的形式存储在您的数据库中(如果没有,请使用正确的字段名称进行更改);
  4. 你必须以这种方式尝试:

    $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 );
    

    最后,请查看how preventSQL-injection in PHPhow check if your result is empty