You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将JSON数据插入MySQL,如何提取指定JSON数组并修正插入代码?

问题解决:提取JSON员工数据并插入MySQL

一、提取目标员工数组

原JSON结构中,员工数据嵌套在Message字段下,解析后直接调用$array['Message']就能得到你需要的数组:

$data = file_get_contents("employee_data.json"); 
$array = json_decode($data, true); 
// 提取员工数组,对应你要求的JSON结构
$employeeList = $array['Message'];

二、修正插入代码(修复错误+规避SQL注入)

原代码存在两处关键问题:ysqli_connect拼写错误,以及直接拼接变量到SQL语句的SQL注入风险,以下是完整修正后的可运行代码:

<?php
// 修复拼写错误:ysqli_connect → mysqli_connect
$connect = mysqli_connect("localhost", "root", "", "test");

// 检查数据库连接状态
if (!$connect) {
    die("连接失败: " . mysqli_connect_error());
}

$filename = "employee_data.json";
$data = file_get_contents($filename); 
$array = json_decode($data, true); 
// 获取目标员工数组
$employees = $array['Message'];

// 使用预处理语句,彻底避免SQL注入
$stmt = mysqli_prepare($connect, "INSERT INTO tbl_employee(name, gender, designation) VALUES (?, ?, ?)");
// 绑定参数(sss表示三个字符串类型参数)
mysqli_stmt_bind_param($stmt, "sss", $name, $gender, $designation);

// 遍历员工数组执行插入
foreach ($employees as $row) {
    $name = $row["name"];
    $gender = $row["gender"];
    $designation = $row["designation"];
    mysqli_stmt_execute($stmt);
}

// 清理资源
mysqli_stmt_close($stmt);
mysqli_close($connect);

echo "数据插入完成";
?>

核心说明

  • 数组提取:无需额外处理JSON字符串,直接通过键名Message即可获取嵌套的员工数据数组
  • 安全规范:使用预处理语句绑定参数,避免直接拼接变量引发的SQL注入风险
  • 错误排查:增加连接状态检查,方便快速定位数据库连接问题

内容的提问来源于stack exchange,提问作者Kimhab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:05:46