当前位置: 首页> 最新文章列表> PHP如何将JSON数据存储到MySQL数据库中

PHP如何将JSON数据存储到MySQL数据库中

M66 2025-07-10

PHP将JSON数据存储到MySQL的应用场景

在Web开发过程中,我们常常需要将结构化数据以JSON格式保存,并写入到数据库中。MySQL自5.7版本起原生支持JSON类型,这让我们在使用PHP时能更高效地存储和管理JSON格式数据。

创建用于存储JSON的MySQL数据表

首先,需要建立一个包含JSON字段的数据表,以下是一个简单的数据表结构:

CREATE TABLE `json_data_table` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `json_data` JSON NOT NULL,
  PRIMARY KEY (`id`)
);

这里我们使用了MySQL的JSON数据类型,它可以自动校验存储数据的结构是否为合法的JSON格式。

使用PHP连接MySQL数据库

通过PHP中的 mysqli 扩展,可以很方便地实现数据库连接:

<?php
$host = "localhost";
$user = "root";
$password = "";
$database = "test";

$conn = new mysqli($host, $user, $password, $database);
if ($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
}
?>

PHP将JSON数据写入MySQL

接下来,将PHP中的数组转为JSON字符串后写入数据库:

<?php
$data = array(
    'name' => 'John',
    'age' => 25
);

$jsonData = json_encode($data);
$sql = "INSERT INTO json_data_table (json_data) VALUES ('$jsonData')";

if ($conn->query($sql) === TRUE) {
    echo "JSON数据添加成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

注意:直接将JSON数据拼接进SQL语句有SQL注入风险,推荐使用预处理语句进行插入。

从MySQL中读取并解析JSON数据

如果你需要从数据库中读取之前存储的JSON数据,并将其转为PHP数组:

<?php
$sql = "SELECT json_data FROM json_data_table WHERE id = 1";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $jsonData = $row['json_data'];
        $data = json_decode($jsonData, true);

        echo "姓名:" . $data['name'] . "<br>";
        echo "年龄:" . $data['age'] . "<br>";
    }
} else {
    echo "没有数据";
}

$conn->close();
?>

使用 json_decode 函数,并传入第二个参数为 true,可以将JSON字符串解析为关联数组,方便后续处理。

总结

本文介绍了如何使用PHP与MySQL协作,存储和读取JSON格式的数据。从表结构设计、数据库连接,到JSON数据的插入和解析,展示了完整的实现流程。在实际项目中,结合JSON字段和MySQL的查询功能,可以极大提升数据操作的灵活性和效率。