gpt4 book ai didi

php - 使用 PHP 从只读 Google 表格获取数据

转载 作者:行者123 更新时间:2023-11-29 17:51:39 26 4
gpt4 key购买 nike

我正在将 Google Sheets 数据镜像到本地 MySQL 数据库中。我正在提取 JSON 格式的工作表数据,解析以提取我需要的信息并将其插入数据库中。

我无法控制添加到工作表中的数据,并且可能会在现有数据之间添加或删除行,或者在末尾添加行。所以我的问题是:如何将工作表上的内容与数据库中已有的内容进行比较,这样我就不会得到重复或丢失的数据。

目前,我正在将 JSON 数据解析为仅包含我需要的片段的数组:

array(2) {
[1]=>
array(2) {
["date"]=>
string(9) "2016-10-8"
["location"]=>
string(15) "Berlin, Germany"
}
[2]=>
array(2) {
["date"]=>
string(10) "2016-10-22"
["location"]=>
string(13) "Nashville, TN"
}
}

然后我将其注入(inject) MySQL 数据库。

稍后,我想返回,再次获取远程数据,并将其与数据库中已有的数据进行比较,删除数据集中不再存在的数据,并添加已添加的任何新数据。这就是我正在努力解决的部分。我可以查询数据库并构建相同的数组格式进行比较,但是由于它是多维数组,因此我无法使用 array_diff()。

那么我应该如何最好地解决这个问题呢?我不认为循环数据集并检查每一行是最有效的方法,但我认为这是一个选择。

最佳答案

如果:不要这样做!不是一个可接受的答案...

您的代码必须可配置、灵活且干净,以便易于维护。如果您可以避免这两个数据集之间的笛卡尔连接,也许有一些数据子集可以用作键或复合键?

你可以用 PHP 将电子表格中的所有数据放入 HashMap 中,然后“加入”速度相当快。

如果没有,手动比较每一行可能是下一个最好的选择。

最后的建议。确保对数据库的调用是批量的。查询太长会导致数据库解析器崩溃。 (例如,如果您 DELETE .... WHERE ....id IN (10 000 ids))

关于php - 使用 PHP 从只读 Google 表格获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49274129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com