gpt4 book ai didi

php - fatal error : Allowed memory exhausted (wordpress + plugin) CSV import

转载 作者:行者123 更新时间:2023-11-30 00:10:43 25 4
gpt4 key购买 nike

大家好,IT 狂热分子,这是我的第一篇文章,所以我会尽量不要搞砸......

我目前正在尝试使用我购买的 WordPress 插件(基本上是一个 php 脚本)将 500 000 行 CSV 行导入到数据库中。

这是我得到的错误:

     ( ! ) Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate  70 bytes) in E:\UwAmp\www\wp-includes\option.php on line 397
Call Stack
# Time Memory Function Location
1 0.0009 425192 {main}( ) ..\admin.php:0
2 1.2649 60016232 do_action( ) ..\admin.php:211
3 1.2649 60017160 call_user_func_array ( ) ..\plugin.php:470
4 1.2649 60017176 AitImport->display_plugin_admin_page( ) ..\plugin.php:470
5 1.2658 60091912 include_once( 'E:\UwAmp\www\wp-content\plugins\wp-import- plugin\views\admin.php' ) ..\class-ait-import.php:220
6 1.2659 60091968 AitImport->import_terms_csv( ) ..\admin.php:41
7 240.4112 261278688 wp_insert_term( ) ..\class-ait-import.php:505
8 240.4547 261280928 clean_term_cache( ) ..\taxonomy.php:2520
9 240.4919 261281832 _get_term_hierarchy( ) ..\taxonomy.php:3226
10 240.9745 266577072 update_option( ) ..\taxonomy.php:3373
11 240.9746 266577176 add_option( ) ..\option.php:274

我尝试检查 phpMyAdmin 中的日志,这是我得到的(这 3 行重复),没有 END 语句,这可能是我的问题的原因吗?

 mysql-bin.000029    27293   Query   1   27398   BEGIN 
mysql-bin.000029 27398 Query 1 28471 use `lecoindesadresses`; UPDATE `wp_options` SET `...
mysql-bin.000029 28471 Xid 1 28502 COMMIT /* xid=199 */

这是我在第 505 行的内容:

    if (...) {
...
} else {
$term_id = wp_insert_term($title, $tax, $attrs);
}

这是该插件的作用:
1 - 解析 CSV 输入文件的一行
2 - 使用 3 选择检查 slug 是否尚不存在
3 - 忽略它是否存在,如果不存在则调用 wp_insert_term

我的 RAM 很好,当它发现已经存在的 slug 时(Apache 使用大约 91Mb 的 RAM),当它开始插入时,RAM 每秒增加 5Mb,直到达到大约 256Mb。然后我得到这个 fatal error 。它每次都会成功插入大约 300 到 400 个项目,但每次我再次启动脚本时它都会降低。

我正在本地 atm 上尝试所有这些(在我的服务器上尝试过,同样的错误)。为 apache 提供更多内存并不能解决问题,因为 RAM 使用量持续快速增长。

如果您有任何想法,可以询问更具体的细节,提前致谢!

最佳答案

PHP 分配了 256mb RAM(268435456 字节),这对于大多数操作来说应该足够了。像这样的导入,如果简单地实现,可能会消耗大量内存。

既然你说你买了这个插件,那么你有机会调试它吗?寻找内存泄漏、从未释放的变量、全局堆等等。

<小时/>

您还可以将 CSV 文件拆分为更小的文件,这样脚本就不会尝试分配尽可能多的内存。这是务实的解决方案。

关于php - fatal error : Allowed memory exhausted (wordpress + plugin) CSV import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090991/

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