mysql只在php foreach循环中插入几行

kognpnkq  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(316)

我在下面描述的php循环中遇到了一个问题。

$query1 = "SELECT * FROM volume_issue";
$sql=$con->prepare($query1);
$sql->execute();

while ($row = $sql->fetch()) {
    //echo $row['id'] . "&nbsp". $row['url']."<br />\n";
    $volume_issue_id = $row['id'];
    $url = $row['url'];
    $volume_issue = $row['volume_issue'];
    $html2 = file_get_html($url);
    //
    //echo $url . '<br>';
    $html = file_get_html($url);

    foreach($html->find('table[class="tocArticle"]') as $div){
        //echo $div->innertext . '<br>';
        //echo "<p/>". $div->nodeName. ": ";
        foreach($div->find('td[class="tocTitle"]') as $td){
            //echo $td . "<br />";
            foreach ($td->find('a') as $links){
                $url =$links->href;
                $title = $links->innertext;
                echo $title . '<br>';
                $query1 = "INSERT INTO citations_url (title,url) VALUES (:title,:url)";
                $sql=$con->prepare($query1);
                $sql->execute(array(
                                  ':title' => $title,
                                  ':url' => $url
                                  ));

            }

        }

    }
}

问题是这个循环只插入了20行而不是615行。另外,当我删除mysql查询并回显 $title 我有615排。但是,当我包含mysql查询和echo out时 $title 我得到20行,只插入了20行。
我一直在为这件事头疼。我可能做错了什么?

nbnkbykc

nbnkbykc1#

您有两个名为 $sql :在顶部和内环中。很可能在完成insert查询之后 $sql->fetch() 不起作用。
尝试重命名第二个变量,这样它们就不会重叠。

相关问题