【问题标题】:How to insert data from a json-object to a database如何将数据从 json 对象插入数据库
【发布时间】:2015-07-25 19:38:31
【问题描述】:

我对 json 很陌生,但我正在尝试将一些数据从 json 插入到数据库表中。我不断收到一些错误: 注意:未定义索引:主题 注意:未定义索引:消息

<?php
$jsondata = '{
  "p1" : [
{
"subject": "Something",
"message": "Something"
},
{
"subject": "Something111",
"message": "Something11"
}
]
}';

$data = json_decode($jsondata, true);
$p1 = $data['p1'];

$sql = "INSERT INTO 
        table(subject,
        message)
        VALUES('".$p1['subject]."', '".$p1['message]."'");
$result = $mysqli->query($sql);

?>

【问题讨论】:

  • $p1 是多维数组,所以使用 foreach 循环\
  • 所以把这里提到的所有东西加起来,找一个像 netbeans 或 eclipse 这样的好编辑器,在发布这个问题之前你会解决大部分问题..

标签: php sql json


【解决方案1】:

$p1 是一个 array 对象,例如:{"subject":"xxxx", "message":"yyy"};

因此,您必须循环 $p1 并执行数据库插入

foreach ($p1 as $obj){
    $sql = "INSERT INTO 
    table(subject,
    message)
    VALUES('".$obj['subject]."', '".obj['message]."'");
    ...
}

【讨论】:

    【解决方案2】:

    $p1 中有多维数组 如果你想插入第一行,你可以使用这个。否则你需要使用 foreach

    $sql = "插入 表(主题, 信息) VALUES('".$p1[0]['subject']."', '".$p1[0]['message']."')";

    【讨论】:

      【解决方案3】:

      你的代码有很多错误。

      1.$p1 是您将其视为数组的多维数组

      2.您在查询中忘记了 ] 前的逗号(')

      3.您在查询中的错误位置关闭了“,它应该在值括号之后。

      使用此代码

      $jsondata = '{
        "p1" : [
      {
      "subject": "Something",
      "message": "Something"
      },
      {
      "subject": "Something111",
      "message": "Something11"
      }
      ]
      }';
      
      $data = json_decode($jsondata, true);
      $p1 = $data['p1'];
      foreach($p1 as $val)
      {
          $sql = "INSERT INTO table(subject,message) VALUES('".$val['subject']."', '".$val['message']."')";
          $result = $mysqli->query($sql);
      }
      

      【讨论】:

        【解决方案4】:
        foreach loop will do the job but as it is an object you need to access it using the -> operator.
        
        
            <?php
            $jsondata = '{
            "p1" : [
            {
            "subject": "Something",
            "message": "Something"
            },
            {
            "subject": "Something111",
            "message": "Something11"
            }
            ]
            }';
            $data = json_decode($jsondata, true);
            $p1 = $data['p1'];
            foreach ($p1 as $object){
           $sql = "INSERT INTO  table(subject,message) VALUES ('".$object->subject."','".$object->message."'");
            $result = $mysqli->query($sql);
            }
            ?>
        
        
        I hope this helps you
        

        【讨论】:

          猜你喜欢
          • 2020-11-19
          • 2019-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-03
          • 2021-08-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多