Php 在数据库上循环并执行mysql查询…它会等到查询完成吗?

Php 在数据库上循环并执行mysql查询…它会等到查询完成吗?,php,mysql,Php,Mysql,我有以下代码: <?php foreach($databases as $database) { system("mysql --host=$db_host --user=$db_user --password=$db_password -v -v -v $database < ../update.sql"); } ?> 我的问题是:在为每个数据库执行update.sql之前,代码是否会等待(看起来是这样)?我不想一下子产生大量的查询。我只想一个接一个地完成它们

我有以下代码:

<?php
foreach($databases as $database)
{
    system("mysql --host=$db_host --user=$db_user --password=$db_password -v -v -v $database < ../update.sql"); 
}
?>

我的问题是:在为每个数据库执行update.sql之前,代码是否会等待(看起来是这样)?我不想一下子产生大量的查询。我只想一个接一个地完成它们。

正如上面所说:

如果使用此功能启动程序,为了 继续在后台运行,程序的输出必须是 重定向到文件或其他输出流。如果不这样做,将导致 使PHP挂起,直到程序执行结束


您需要这样查询数据库的具体原因是什么?你能不能不使用一个纯粹的基于PHP/MySQL的实现。等一下。但有更好的方法可以做到这一点,不需要启动shell并传入潜在的“坏”文件名,也不需要在shell的命令历史记录中留下凭据。这适用于具有相同架构的多个数据库上的升级脚本。这不是一个公共脚本;仅从db服务器上的cli运行。最好的方法是什么?既然我没有重定向输出,它就会挂起?而且因为它是cli,所以不应该超时,对吗?(最大执行)是,如果您从命令行调用脚本-则是否超时问题。