所以我还在学习PHP、MySQL和其他一些语言。在我努力改进和学习的同时,我开发了一款浏览器游戏。
现在,我正试图从每一场战斗中保存一个"战斗日志",这将允许我的用户返回并查看他们过去的战斗。
为了解决这个问题,我尝试将每一轮战斗存储到php数组中。现在我的问题是将该数组保存到我的数据库中,供用户请求并显示给他们。
我试着处理PHP的序列化以及json_encode。但我没能把它们存储在我的数据库中,因为它会给我一个语法错误或一个空行。
这里有一个例子来展示我正在努力实现的目标!
$i = 1;
$battle_log = array();
while( $i <= 10)
{
$battle_log[] = "Round ".$i."<br>";
$i++;
}
foreach ($battle_log as $rounds => $round) {
echo "".$round."";
}
$save_log = json_encode($battle_log);
$sql = "INSERT INTO battle_log_test VALUES fighter1_id='13', fighter2_id='45', battle_log='".$save_log."' ";
$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));
所有帮助我解决这个问题的意见将不胜感激。
您必须使用:
$query = "INSERT INTO battle_log (fighter1_id,fighter2_id,battle_log) VALUES (13,45,'".$save_log."');";
$sql = $mysqli_query($connection,$query) or die($mysqli_error($connection));
您的INSERT查询是错误的,应该是:
$sql = "INSERT INTO battle_log_test
(fighter1_id, fighter2_id, battle_log)
VALUES
('13', '45', '".$save_log."')";
您可以在json_encode()中使用PHP serialize()函数
$i = 1;
$battle_log = array();
while( $i <= 10)
{
$battle_log[] = "Round ".$i."<br>";
$i++;
}
foreach ($battle_log as $rounds => $round) {
echo "".$round."";
}
$save_log = serialize($battle_log);
$sql = "INSERT INTO battle_log_test VALUES fighter1_id='13', fighter2_id='45', battle_log='".$save_log."' ";
$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));