将PHP数组存储在MySQL中

时间:2016-04-13 10:12:09

标签: php mysql arrays

所以我还在学习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));

非常感谢所有帮助我解决这个问题的输入。

3 个答案:

答案 0 :(得分:1)

你必须使用:

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

答案 1 :(得分:0)

你的INSERT查询错误,应该是:

$sql = "INSERT INTO battle_log_test 
    (fighter1_id, fighter2_id, battle_log) 
VALUES 
    ('13', '45', '".$save_log."')";

答案 2 :(得分:0)

你可以使用PHP serialize()函数inssed 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 = 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));