【问题标题】:INSERTING JSON data from API request into MySQL database将 API 请求中的 JSON 数据插入 MySQL 数据库
【发布时间】:2018-11-18 00:30:36
【问题描述】:

之前我发布了一个类似的问题,关于使用 PHP 将 JSON 数据传递到下拉菜单。 How can i arrange data array from API request into HTML SELECT OPTION LIST?

现在我想将 JSON 数据插入 MySQL 数据库

以下是我的 api_redcap.php 代码,用于从其他 Web 服务器调用数据:

<?php 
     $data = array(
          'token' => '4B0D42AB9D061C0FADD724D2E908349D',
          'content' => 'report',
          'format' => 'json',
          'report_id' => '71',
          'rawOrLabel' => 'label',
          'rawOrLabelHeaders' => 'label',
          'exportCheckboxLabel' => 'false',
          'returnFormat' => 'json'); 

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://redcap-virtualbox/redcap/api/');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_VERBOSE, 0);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_AUTOREFERER, true);

curl_setopt($ch, CURLOPT_MAXREDIRS, 10);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data, '', '&'));

$output = curl_exec($ch);

$json = json_decode($output);    
?>

下面是我的 api_redcap.php 输出:

[{"project_code":"16001","dept":"骨科(ORTHO)","group":"","name":"Jameson Lua Yao Chung"},{"project_code":" 16002","dept":"风湿病过敏和免疫学 (RAI)","group":"","name":"Koh Ee Tzun"},{"project_code":"16003","dept":"骨科外科 (ORTHO)","group":"","name":"Ang Wei Luong"},{"project_code":"16004","dept":"风湿病过敏和免疫学 (RAI)","group" :"","name":"林欣荣"},{"project_code":"16005","dept":"理疗(PT)","group":"","name":"李坤曼"}]

我的表在MySQL数据库中名为PROJECT_CODE,属性如下:

表名称 - PROJECT_CODE 字段名称: 项目代码, 部, 请求者,

我想将 JSON 中的 project_code、dept 和 name 变量分别插入 MySQL 表字段。请帮忙。谢谢

【问题讨论】:

  • 变量 $json 应该是一个数组,您可以像访问任何其他数组对象一样访问它。您只需要在获取值后执行 MyQSL INSERT。如果要查看数组的结构,请在 json_decode 语句之后使用 echo "&lt;p&gt;json array:&lt;pre&gt;".print_r($json,true)."&lt;/pre&gt;&lt;/p&gt;\n";。
  • @SloanThrasher 谢谢,但你能告诉我一个关于 MySQL 插入 json 的示例代码吗?使用 foreach?

标签: javascript php html mysql json


【解决方案1】:
$json = json_decode($output, true);
foreach($json as $val)
{
    $project_code = $val['project_code'];
    $dept = $val['dept'];
    $name = $val['name'];

    /*
    * Generate insert query as below
    * "INSERT INTO MyGuests (project_code, dept, name) VALUES ($project_code, $dept, $name);";
    */

}

此外,您可以在单个循环中插入多条记录 请检查以下参考链接 https://www.w3schools.com/php/php_mysql_insert_multiple.asp

在参考链接中给出了 3 种不同的方法,因此,您可以使用任何适合您的方法

【讨论】:

  • 你帮了大忙@Jaydp
猜你喜欢
  • 2013-03-25
  • 2023-02-02
  • 2020-11-23
  • 2019-04-01
  • 1970-01-01
  • 2014-04-26
  • 2013-05-17
  • 2017-10-20
  • 1970-01-01
相关资源
最近更新 更多