【问题标题】:Update mysql table using data from json file使用 json 文件中的数据更新 mysql 表
【发布时间】:2011-04-07 15:13:19
【问题描述】:

我对 json 完全陌生,因此很难使用。

我有一个 id 列表存储在 mysql 表的 id 字段中。

例如 id 字段包含这些值

  1. 100001
  2. 100002
  3. 100003

json 文件包含这些 id 的属性,如下所示。

{"100001":{"person":{"name":"John","age":"32,"address":"123 street"}},
{"100002":{"person":{"name":"jenny","age":"22,"address":"100 street"}},
{"100003":{"person":{"name":"james","age":"25,"address":"200 street"}}

我的意图是使用 json 文件中的数据更新 mysql 表中的名称、年龄和地址字段,并使用 id 作为 where 子句中的条件。

但我什至不知道从哪里开始。

有知道自己在做什么的人,请指点一下。

提前致谢。

【问题讨论】:

    标签: php json parsing


    【解决方案1】:

    你很难理解什么? json_decode() http://php.net/manual/en/function.json-decode.php

    $var = '{"100001":{"person":{"name":"John","age":"32,"address":"123 street"}},
    {"100002":{"person":{"name":"jenny","age":"22,"address":"100 street"}},
    {"100003":{"person":{"name":"james","age":"25,"address":"200 street"}}';
    
    print_r(json_decode($var));
    

    这将为您提供一个数组,您可以使用 foreach 并创建单独的更新语句来构建一个大型更新语句并执行它。

    【讨论】:

    • 您好,感谢您的快速回复。我了解json解码。我只是无法将它应用于这个特定的数据结构。另外我不知道如何将它与更新语句结合起来。我已经尝试了你的建议,我只是得到空白屏幕,没有错误或任何东西。
    【解决方案2】:

    您应该在某处遇到错误;您的花括号不匹配,并且您在年龄后缺少右引号:

    {"100001":{"person":{"name":"John","age":"32,"address":"123 street"}},
    

    应该是

    {"100001":{"person":{"name":"John","age":"32","address":"123 street"}}},
    

    您缺少实际 ID 的右大括号。为了便于阅读,请尝试如下格式:

    {
     "100001":{
               "person":{
                         "name":"John",
                         "age":"32",
                         "address":"123 street"
                         }
               }
     },
    

    【讨论】:

    • 感谢艾美奖。应该看到年龄报价。但是,正在使用的 json 文件没有每个条目的右大括号。相反,它有一个逗号分隔每个条目。闭合支撑仅出现在最后一个条目上以指示文件的结尾。
    • 那么每个ID号之前不应该有一个左大括号,第一个之前应该只有一个。大括号不能不匹配。
    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 2023-03-07
    • 2021-06-16
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    相关资源
    最近更新 更多