php - 将数组插入 MySQL

标签 php mysql arrays json

我 super 迷茫,一直在寻找。但正如标题所示,我正在尝试输入一个数组。 我的问题是如何将这个数组导入到数据库中?截至目前,使用当前脚本,它只导入第一条记录而不导入其余记录。在这里,我还能够在同一个数组中导入其他值,顺便说一句,这是一个 JSON 调用,它已经被解码了。

foreach ($output as $key => $value) {
    if (isset($output[$key]["stats"]["damage_given"]["vehicle"])) {
        $damage_given[$key] = $output[$key]["stats"]["damage_given"]["vehicle"];
            foreach ($damage_given[$key] as $vehicle_name) {
                $vehicle_dmg_id         = $vehicle_name['id'];
                $vehicle_dmg_name       = $vehicle_name['name'];
                $vehicle_dmg_value      = $vehicle_name['value'];
                $vehicle_dmg_faction_nc = $vehicle_name['faction']['nc'];
                $vehicle_dmg_faction_tr = $vehicle_name['faction']['tr'];
                $vehicle_dmg_faction_vs = $vehicle_name['faction']['vs'];
            }
     }
}

$add_dmg_veh = "INSERT INTO damage_given(character_number, vehicle_id,
vehicle_name, total_value, vehicle_faction_nc, vehicle_faction_tr,
vehicle_faction_vs) VALUES ('$character_id[$key]', '$vehicle_dmg_id', 
'$vehicle_dmg_name','$vehicle_dmg_value', '$vehicle_dmg_faction_nc', 
'$vehicle_dmg_faction_tr','$vehicle_dmg_faction_vs')";

最佳答案

虽然不建议将数组存储在数据库中,但您可以serialize() 将数组存储在数据库中。基本上,PHP 会将数组转换为特制的字符串,稍后可以对其进行解释。

Serialize将其存储在数据库中,unserialize当您将它从数据库中拉出时,它可以使用它

注意:我说的是不推荐序列化,因为那时你的数据库不在First Normal Form中,特别是因为您将非原子值存储在数据库中的特定条目内。对于这种情况,我建议创建一个单独的表来单独存储这些值,并使用外键将两个表链接在一起。

关于php - 将数组插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15462523/

相关文章:

C++ 检查一个 double 是否在另一个 double (+/-) 的 .1 范围内

c++ - 复制对象数组

php - 我用日期选择器选择的日期输入没有插入到我的数据库中

php - 从 4 个表中找到唯一的最小和最大日期 - php

PHP 从具有 3 个连接的 2 个表中输出数据

Linux 服务器上来自 Silverlight 的 MySQL

由于损坏/过时的索引,MySQL 无限制地返回零行(空集)

php - 如果访问日期是<今天的日期,则更新 "status"单元格php mysql

ios - Swift 和核心数据 - 数组和单元格基础知识

php - Laravel 不同的对象 groupBy