如何将 API JSON 响应存储到 MySQL 数据库并重新获取

如何将 API JSON 响应存储到 MySQL 数据库并重新获取

本文介绍了如何将 API 返回的 jsON 数据存储到 mysql 数据库中,并从数据库中检索 json 数据。通过将 JSON 数据存储在数据库中,可以减少对 API 的重复调用,从而节省 API 调用次数,特别适用于付费 API 或有调用次数限制的 API。文章提供了详细的代码示例,展示了如何使用 phpmysqli 扩展实现 JSON 数据的存储和检索。

当使用付费 API 或具有调用次数限制的 API 时,为了避免频繁请求 API 导致费用增加或超出限制,可以将 API 返回的 JSON 数据存储到 MySQL 数据库中。这样,应用程序可以直接从数据库获取数据,而无需每次都调用 API。本文将详细介绍如何实现这一目标。

存储 JSON 数据到 MySQL 数据库

首先,需要创建一个 MySQL 表来存储 JSON 数据。表结构至少包含一个用于存储 JSON 数据的列。以下是一个示例表结构:

CREATE TABLE matchinfo (     id INT AUTO_INCREMENT PRIMARY KEY,     jsondata LONGTEXT );

其中 jsondata 列的数据类型为 LONGTEXT,用于存储较大的 JSON 字符串

接下来,使用 PHP 和 MySQLi 扩展将 API 返回的 JSON 数据存储到数据库中。以下是一个示例代码:

<?php  // 数据库连接信息 $host = "localhost"; $username = "user"; $password = "password"; $database = "database";  // 创建数据库连接 $conn = new mysqli($host, $username, $password, $database);  // 检查连接是否成功 if ($conn->connect_error) {     die("连接失败: " . $conn->connect_error); }  // API URL $api_url = "your_api_url";  // 从 API 获取 JSON 响应 $json_response = file_get_contents($api_url);  // 使用 mysqli_real_escape_string 进行转义,防止 SQL 注入 $json_response = $conn->real_escape_string($json_response);  // 构建 SQL 语句 $sql = "INSERT INTO matchinfo (jsondata) VALUES ('$json_response')";  // 执行 SQL 语句 if ($conn->query($sql) === TRUE) {     echo "数据存储成功"; } else {     echo "Error: " . $sql . "<br>" . $conn->error; }  // 关闭数据库连接 $conn->close();  ?>

注意事项:

如何将 API JSON 响应存储到 MySQL 数据库并重新获取

Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

如何将 API JSON 响应存储到 MySQL 数据库并重新获取30

查看详情 如何将 API JSON 响应存储到 MySQL 数据库并重新获取

  • 务必使用 mysqli_real_escape_string() 函数对 JSON 字符串进行转义,以防止 SQL 注入攻击。
  • 将 your_api_url 替换为实际的 API URL。
  • 请根据实际情况修改数据库连接信息。

从 MySQL 数据库中检索 JSON 数据

从数据库中检索 JSON 数据并将其转换为 PHP 数组非常简单。以下是一个示例代码:

<?php  // 数据库连接信息 $host = "localhost"; $username = "user"; $password = "password"; $database = "database";  // 创建数据库连接 $mysqli = new mysqli($host, $username, $password, $database);  // 检查连接是否成功 if ($mysqli->connect_error) {     die("连接失败: " . $mysqli->connect_error); }  // 构建 SQL 语句 $sql = "select jsondata FROM matchinfo";  // 执行 SQL 语句 $result = $mysqli->query($sql);  // 检查查询结果 if ($result->num_rows > 0) {     // 获取结果集中的第一行数据     $row = $result->fetch_assoc();      // 获取 JSON 字符串     $json_response = $row['jsondata'];      // 将 JSON 字符串转换为 PHP 数组     $data = json_decode($json_response, true);      // 输出数组内容     print_r($data); } else {     echo "没有找到数据"; }  // 关闭数据库连接 $mysqli->close();  ?>

代码解释:

  • $result = $mysqli-youjiankuohaophpcnquery(“SELECT jsondata FROM matchinfo”);:执行 SQL 查询语句,从 matchinfo 表中选择 jsondata 列。
  • $row = $result->fetch_assoc();:从结果集中获取一行数据,并将其转换为关联数组
  • $json_response = $row[‘jsondata’];:从关联数组中获取 jsondata 列的值,即 JSON 字符串。
  • $data = json_decode($json_response, true);:使用 json_decode() 函数将 JSON 字符串转换为 PHP 数组。第二个参数 true 表示将 JSON 对象转换为关联数组。

总结:

通过将 API 返回的 JSON 数据存储到 MySQL 数据库中,可以有效地减少对 API 的重复调用,从而节省 API 调用次数和费用。本文提供了详细的代码示例,展示了如何使用 PHP 和 MySQLi 扩展实现 JSON 数据的存储和检索。在实际应用中,请根据具体需求修改代码,并注意数据安全和性能优化

以上就是如何将 API JSON 响应存储到 MySQL 数据库并重新获取的详细内容,更多请关注php中文网其它相关文章!

上一篇
下一篇
text=ZqhQzanResources