gpt4 book ai didi

php - 当我从本地 Homestead 更改为 AWS 中的产品时,Laravel 抛出 SQLite 错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:41 26 4
gpt4 key购买 nike

我创建了一个使用 Archon 库创建和操作数据帧的应用程序,here's链接(伟大的图书馆顺便说一句!)。

应用程序将创建一个包含重复项的大型数组。我正在使用 Archon 的数据框功能来执行 groupBy 操作,以便我获得数组中每个唯一条目的计数。

这个数组从几百个条目到几千个不等。

在本地,这工作正常。我正在使用带有 VirtualBox 的 Vagrant - 我有一个 Homestead Box 在那里运行。它在 Ubuntu 64 位系统上运行。我最近将我的应用程序部署到一个弹性 beanstalk 实例,它在 64 位 Amazon Linux/2.6.6 上运行。

部署后,我收到错误

SQLSTATE[HY000]: General error: 1 too many SQL variables

因此,似乎出于某种原因,在更改系统后,客户端与构建 Archon 的 SQLite 驱动程序的交互方式有所不同。我不知道为什么这会在本地工作,但在部署后却不行。

这是我使用的产生错误的代码:

$df = DataFrame::fromArray($batch_array);
$senders_emails = $df->query("SELECT a,sum(b) AS bFROM dataframe GROUP BY 1ORDER BY 2 DESC")->toArray();

有没有人足够了解 SQLite/Archon/Homestead 与 EB 的关系来提供帮助?将不胜感激!

最佳答案

您的 $batch_array 数据过多。

这样想

$sendersEmails = [];
foreach (array_chunk($batch_array, 100) as $chunk) {
$df = DataFrame::fromArray($chunk);
$emails = $df->query("SELECT a,sum(b) AS bFROM dataframe GROUP BY 1ORDER BY 2 DESC")->toArray();
$sendersEmails = array_merge($sendersEmails, $emails);
}

注意:这可能会导致内存溢出

要从根本上解决问题需要减少$batch_array数据量

What is maximum query size for mysql?

关于php - 当我从本地 Homestead 更改为 AWS 中的产品时,Laravel 抛出 SQLite 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50037751/

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