我们如何使用php从外部API提取数据并从中填充mysql表?如果要对API中数据的详细信息进行任何更改,我想更新数据库中的详细信息。
我可以使用guzzleHttp进行API调用,但是将数据插入mysql表的最佳方法是什么?
这样提取的数据大约有500行:
{"name": "Escape", "id": "553",...},
{"name": "Excursion","id": "5675",...}
遍历所有提取的数据,并检查数据库是否有这样的记录?如果某列中有不同的数据,然后更新该记录?
答案 0 :(得分:0)
一种简单的方法是简单地尝试更新。如果它们没有导致数据的净变化,那没关系。这样的更改将使“受影响的行”为零。
假设您在变量this.history.push('component/:id')
中与数据库建立了PDO连接,并且$pdo
是您显示的JSON行数组,我将这样编码:
$api_result
如果API的JSON结果格式不正确,则会出现问题。例如,如果在SQL查询中除了占位符之外还有其他字段。或者,如果JSON对象数组未由$data = json_decode($api_result, true);
$sql = "UPDATE mytable SET name=:name, date=:date WHERE id=:date";
$stmt = $pdo->prepare($sql);
$rowCount = 0;
foreach ($data as $row) {
$stmt->execute($row);
$rowCount += $stmt->rowCount();
}
echo "$rowCount rows updated.\n";
分隔。