PHP 而循环在嵌套 foreach 完成后未完成


PHP While loop not finishing after nested foreach finishes

外部 while 循环在内部 foreach 循环完成后永远不会恢复。 当内部完成时,文件将报告回命令,就好像它已完成一样。 它从不回显"+++++++"。

该脚本旨在从 api 中提取一些数据并将该数据保存到表中,api 以 1000 的批次返回记录,因此外部 while 循环拉取多组 1000 条。该脚本多次返回"已保存",但从不返回"++++++"。 有什么想法吗?

while ($iterations > 0) {
        $results = json_decode(file_get_contents("http://foo.bar?start=$start$limit=1000"), true);
        foreach ($results['SearchResult']['Records'] as $result) {
                //search table
                $query = "SELECT id from sometable where name = '".$result['something']."'";
                $res = mysql_query($query, $conn) or die(mysql_error());
                $branch = mysql_fetch_assoc($res) or die(mysql_error());
                //save to table
                $query = "INSERT INTO `table` some values)";
                if (mysql_query($query, $conn) or die(mysql_error())) {
                    echo 'SAVED';
                }   

        }
        $start = $start+1000;
        $iterations--;
        echo "++++++++++++++++++++";
    }

这可能会导致问题:

if (mysql_query($query, $conn) or die(mysql_error())) {

die() 命令作为 if 语句的一部分进行处理。

相反,我会做这样的事情:

$q=mysql_query($query, $conn) or die(mysql_error());
if ($q) {