php - 使用 PHP 将 JSON 解析为 MySQL

标签 php mysql json

我有一些 JSON 文件要记录在 MySQL 上,我通读了 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 表。如果没有我可以阅读的“ Prop ”部分,请使用 json_decode() 并循环遍历数组以存储所有其他值,但“ Prop ”部分让我感到困惑。

我的表应该有字段吧?

  • 已玩小时数 * INT
  • communityVisibilityState * INT
  • 创建时间 * INT
  • Prop * ??

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

通常;

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

我的情况呢?

最佳答案

是时候看看 foreign key constraints in MySQL 了.基本上您的表结构如下所示:

  • 表#1 用户 - 用户 ID |播放时间 |社区可见性状态 |创建时间
  • 表#2 UserProperty - userKey |水平 |质量 |来源.

因为你使用的是MySQL,你可以查看autoincrement对于主键 UserID。您将使用此主键作为外键插入 UserProperty 表中。

整个过程是这样的:

  • 在第一个表格中插入一行。获取插入的主键(即第一列)。
  • 遍历所有“props”字段:
    • 接下来,使用您在上述步骤中获得的 key ,并在将当前“prop”插入第二个表中时使用它。

关于php - 使用 PHP 将 JSON 解析为 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474125/

相关文章:

php - 如果(mysql)做某事

php - Stripe 连接收费返回错误 (PHP)

php - PHP/MySQL 消息系统

php - Mysql PDO 没有正确插入序列化的 php 数据(在 ´ 符号处截断)?

php - Instagram 如何使用 Amazon S3?

php - 记录插入,但不更新mysql

mysql - 在 shell 脚本中仅打印一次列名

c# - 将 json 字符串中的 bool 值转换为 int

json - 让 Jersey 2.x POJO JSON 支持与 Jetty 一起工作

php - 存储和检索数百万个 JSON 编码的事件(PHP/数据库)