我试着增加一个球员,同时给他一些数据。
但问题是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`)
Health
,Stamina
,Food
,Coins
,SuperCoin
在数据库中有一个标准值,因此我也尝试了: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/