繁体   English   中英

使用PHP将JSON解析为MySQL

[英]Parsing JSON to MySQL with PHP

我有一些我想在MySQL上录制的JSON文件,我在SO中阅读了一些帮助主题,但是我遇到了问题。 1 2 3

我的JSON看起来像这样;

     {
          "hoursPlayed": 21775,
          "communityVisibilityState": 3,
          "timeCreated": 1261107470,
          "props": [
       {
          "level": 53,
          "quality": 6,
          "origin": 0,
       },
       {
          "level": 10,
          "quality": 6,
          "origin": 0,
       }
    ]
  }

我已经创建了表及其字段,但是当谈到JSON的最后一个条目中的“props”数组时,我无法弄清楚要做什么。 它本身就是一个数组,它应该有自己的MySQL表。 没有我可以阅读的“道具”部分,使用json_decode()并循环遍历数组来存储其他所有值,但“道具”部分让我感到困惑。

我的桌子应该有字段,对吧?

  • hoursPlayed * INT
  • communityVisibilityState * INT
  • timeCreated * INT
  • 道具 * ??

如何将它存储在MySQL的表中?

一般;

mysqli_query($con,"INSERT INTO my_jsonDB (hoursPlayed, communityVisibilityState, timeCreated)
VALUES (21775, 3,1261107470)");

在我的情况下怎么样?

是时候看看MySQL中外键约束了 基本上你的表结构如下所示:

  • 表#1用户 - UserID | hoursPlayed | communityVisibilityState | timeCreated UserID | hoursPlayed | communityVisibilityState | timeCreated
  • 表#2 UserProperty - userKey | level | quality | origin userKey | level | quality | origin userKey | level | quality | origin

由于您使用的是MySQL,因此可以查看主键UserID 自动增量 您将使用此主键在UserProperty表中作为外键插入。

整个过程看起来像这样:

  • 在第一个表中插入一行。 获取插入的主键(即第一列)。
  • 迭代所有“道具”字段:
    • 接下来,使用您在上面步骤中获得的密钥,并在第二个表中插入当前“prop”时使用它。

你的道具应该在他们自己的表中,并有一个外键引用回my_jsonDB。

例如,您应该有一个名为Props的表。

列将是id,my_jsonDB_id,级别,质量,原点。

第一行可能是:1,1,5,6,0,0

然后,当您插入Props表时,只需将my_jsonDB_id设置为my_jsonDB表中prop数据所涉及的id。

看一下这个例子: http//www.w3schools.com/sql/sql_foreignkey.asp

例如,您也可以使用Text字段。 并在将它保存到数据库之前使用serialize()函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM