如果数据不同,PHP将获取外部api以填充数据库表并更新表

问题描述 投票:-3回答:1

我们如何使用php从外部API获取数据并从中填充mysql表?如果对API中的数据的详细信息进行任何更改,我想更新数据库中的详细信息。

我可以使用guzzleHttp进行API调用,但是将数据插入mysql表的最佳方法是什么?

获取的数据大约是500行,如下所示:

{"name": "Escape", "id": "553",...},
{"name": "Excursion","id": "5675",...}

循环遍历所有获取的数据并检查数据库是否有这样的记录?然后更新该记录,如果某列中有不同的数据?

php mysql api oop slim
1个回答
0
投票

一种简单的方法是简单地尝试更新。如果它们导致数据没有净变化,那没关系。 “受影响的行”将从这种变化中归零。

假设你在变量$pdo中有一个到你的数据库的PDO连接,而$api_result是你所展示的行的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";

如果您的API的JSON结果未正确形成,则会出现问题。例如,如果除了SQL查询中的占位符之外还有其他字段。或者,如果JSON对象数组未由[ ]分隔。

© www.soinside.com 2019 - 2024. All rights reserved.