[英]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.