繁体   English   中英

将来自API请求的JSON数据插入MySQL数据库

[英]INSERTING JSON data from API request into MySQL database

以前,我曾发布过一个类似的问题,有关使用PHP将JSON数据传递到下拉菜单的问题。 如何将API请求中的数据数组排列到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”:“”,“名称”:“ Jameson Lua Yao Chung”},{“ project_code”:“ 16002”, “ dept”:“风湿病变态反应与免疫学(RAI)”,“ group”:“”,“ name”:“ Koh Ee Tzun”},{“ project_code”:“ 16003”,“ dept”:“骨科手术(ORTHO) )“,” group“:”“,”名称“:” Ang Wei Luong“},{” project_code“:” 16004“,” dept“:”风湿病变态反应与免疫学(RAI)“,” group“:”“ ,“ name”:“ Lim Xin Rong”},{“ project_code”:“ 16005”,“ dept”:“ Physicaltherapy(PT)”,“ group”:“”,“ name”:“ Li Kun Man”}]

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

表格名称-PROJECT_CODE字段名称:PROJECT_code,DEPARTMENT,REQUESTOR,

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

$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种不同的方法,因此,您可以使用任何一种适合您的方法

暂无
暂无

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

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