如何正确地通过php发送许多MySQL查询,发送后AJAX请求会发生什么?

时间:2015-10-30 作者:Nadroev

我需要更新几千个帐户的详细信息,但我不能用纯MySQL,我也需要php。所有的循环大概有10万个mysql查询。我选择通过一个发出ajax请求的按钮来完成,当我在本地进行测试时,请求在几个小时后仍然挂起。我知道一个循环可以按预期工作。如果我在服务器上做同样的事情,它会在我脱机后继续执行查询吗?过多的查询是否会影响网站的用户?试图通过让循环在每次需要更新数据库时只添加到查询字符串并在完成后立即执行来缩短过程,但是

$wpdb->query( 
    $wpdb->prepare( 
        $query_string,
        $value_parameters_array 
    )
);
在使用单个循环进行测试时,似乎没有任何作用。

1 个回复
SO网友:Rarst

PHP可以运行的时间通常有一个托管限制,在共享上这可能低至60-90秒。由于WP的Ajax只是PHP加载的另一个实例,因此它可能会受到该限制。

即使它被禁用,任何错误都有可能导致如此长时间运行的进程中断。

不幸的是,WP中没有任何运行长任务的机制。您可能需要为它寻找其他PHP解决方案。

最接近的WP选项是使用WP cron定期切换任务,这将获取较小的共享、处理它并跟踪进度。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请