问题描述
我在 cURL 中遇到问题。在这里,我可以从另一个源代码获取json数据,我也有一些想法。但实际上我无法将json数据保存到我自己的sql数据库服务器中。我想从中检索数据
并想保存到我的服务器(mysql)中。
这是我要保存在mysql服务器中的$ url json数据:
id
date
link
title
content
author
categories
wp:attachment
,我想将它们保存到mysql数据库中。我的表名是“新闻”,我想将它们保存到我的表列中。
id [id]
title [title]
description [content]
date [date]
category [categories]
thumbnail [wp:attachment]
admin [author]
在这里,我从url标记json并替换为我的sql列名称。如果有人可以给我有关如何从用户获取数据并将其保存到mysql中的说明。
感谢前进。
解决方法
PHP可以实现您所需的实现。您必须检查值是否有效或数组成员是否存在。这只是您的示例的原始实现。
<!DOCTYPE html>
<html>
<body>
<?php
// db connection
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$db = new PDO('mysql:host=localhost;dbname=test;','user','pass',$options);
// download json from url
$json = file_get_contents('https://jamuna.tv/wp-json/wp/v2/posts');
echo '<br/>';
$sql = "INSERT INTO `mytable` (`id`,`title`,`description`,`date`,`category`,`thumbnail`,`admin`)
VALUES (:id,:title,:content,:date,:categories,:attachment,:author)";
$stm = $db->prepare($sql);
// parse JSON
$arr = json_decode($json,true);
$i = 0;
foreach ($arr as $record) {
echo "==================Insert record " . $i ++ . "<br>";
$data = array(
':id' => $record['id'],':title' => $record['title']['rendered'],':content' => $record['content']['rendered'],':date' => $record['date'],':categories' => $record['categories'][0],':attachment' => $record['_links']['wp:attachment'][0]['href'],':author' => $record['author']
);
var_dump($data);
// inserting a record
$stm->execute($data);
}
?>
</body>
</html>