第二条SQL语句未执行

第二条SQL语句未执行

我试着增加一个球员,同时给他一些数据。
但问题是1。不加统计,2。我需要先添加玩家,这样我就可以让gamerId返回。

    $sqlPlayer = "INSERT INTO players (`gender`, `username`, `email`, `password`) VALUES('$gender','$username','$email','$password')";
    echo $sqlPlayer."</br>";

    if ($db->query($sqlPlayer))
    {
        echo "Player added. </br>";

        $GamerId = $db -> lastInsertId();
        echo "Gamer id added:".$GamerId." </br>";

        $_SESSION['GamerId'] = $GamerId;
        echo "Gamer session added:".$_SESSION['GamerId']." </br>";

        $sqlStats = "INSERT INTO stats (`GamerId`,`Health`,`Stamina`,`Food`,`Coins`,`SuperCoin`) VALUES(`$GamerId`,`100`,`250`,`4`,`500`,`0`)";
        echo $sqlStats."</br>";

        if ($db->query($sqlStats))
        {
            echo "Stats for player added.</br>";
            return true;
        }
    }
    else
    {
        return false;
    }

如上图所示,我添加了一些echo,以查看哪些是有效的,哪些是无效的,以查看正在发生的事情。
到目前为止我总是得到:
INSERT INTO players (`gender`, `username`, `email`, `password`) VALUES('*gender*','*username*','*email*','*password*')

Player added.

Gamer id added:25

Gamer session added:25

INSERT INTO stats (`GamerId`,`Health`,`Stamina`,`Food`,`Coins`,`SuperCoin`) VALUES(`7`,`100`,`250`,`4`,`500`,`0`)

HealthStaminaFoodCoinsSuperCoin在数据库中有一个标准值,因此我也尝试了:
INSERT INTO stats (`GamerId`,`Health`,`Stamina`,`Food`,`Coins`,`SuperCoin`) VALUES(`25`,` `,` `,` `,` `,` `)

INSERT INTO stats (`GamerId`) VALUES(`25`)

最佳答案

正如@Saty指出的,VALUES子句包含反勾号而不是撇号。所以,你可以这样做:

    $sqlStats = "INSERT INTO stats (`GamerId`,`Health`,`Stamina`,`Food`,`Coins`,`SuperCoin`) VALUES('$GamerId','100','250','4','500','0')";
                                                                                                    ^^^      ^^^

根据您的数据库架构,对数字字段使用数字可能也很有用。即。:
         VALUES(..., 500, ...)
    No apostrophes: ^^^^^^

关于php - 第二条SQL语句未执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38790716/

10-11 19:31