php 从$url 获取 json 数据并转化为数组,将该数组的键名作为数据库字段,插入MySQL数据库 yz,在插入时先判断数据是否重复,如果为否,逐条插入,逐条显示插入结果,用到mysqli 的 prepare
时间: 2025-01-06 18:53:57 浏览: 60
好的,我可以为您提供一个使用PHP和mysqli的示例代码,实现从URL获取JSON数据、转换为数组并插入MySQL数据库的功能。以下是代码示例:
```php
<?php
// 从URL获取JSON数据
$url = 'your_json_url_here';
$data = file_get_contents($url);
$json = json_decode($data, true);
// 数据库连接参数
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "yz";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 准备SQL语句
$stmt = $conn->prepare("INSERT INTO your_table_name (field1, field2, field3) VALUES (?, ?, ?)");
// 检查准备是否成功
if ($stmt === false) {
die("准备语句失败: " . $conn->error);
}
// 遍历JSON数组并插入数据
foreach ($json as $item) {
// 绑定参数
$stmt->bind_param("sss", $item['field1'], $item['field2'], $item['field3']);
// 执行语句
if ($stmt->execute()) {
echo "插入成功: " . $item['field1'] . "<br>";
} else {
echo "插入失败: " . $item['field1'] . " (错误: " . $stmt->error . ")<br>";
}
}
// 关闭语句和连接
$stmt->close();
$conn->close();
?>
```
这个脚本做了以下几件事:
1. 从指定的URL获取JSON数据。
2. 将JSON数据转换为PHP关联数组。
3. 连接到MySQL数据库。
4. 准备一个INSERT语句,使用准备好的语句可以防止SQL注入。
5. 遍历JSON数组中的每个项目:
- 绑定参数到准备好的语句中。
- 执行插入操作。
- 根据执行结果,显示插入成功或失败的信息。
6. 关闭语句和数据库连接。
使用这个脚本时,您需要:
1. 将 `$url` 替换为实际的数据URL。
2. 更新数据库连接参数(服务器名、用户名、密码和数据库名)。
3. 修改SQL语句中的表名和字段名,以匹配您的实际数据库结构。
4. 根据您的JSON数据结构,调整 `$item['field1']`, `$item['field2']`, `$item['field3']` 等部分。
这个脚本使用了准备好的语句(`prepare`)来防止SQL注入,并且逐条插入数据,显示每条数据的插入结果。
阅读全文