prepare($query1); $sql->exe-6ren">
gpt4 book ai didi

php - MySQL在php foreach循环中只插入几行

转载 作者:行者123 更新时间:2023-11-29 02:11:21 24 4
gpt4 key购买 nike

我的 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 查询并回显 $title 时,我得到 20 行并且只插入了 20 行。

我一直在为这个问题绞尽脑汁。我可能做错了什么?

最佳答案

您有 2 个名称为 $sql 的变量:在顶部和内部循环中。很可能在您完成 INSERT 查询后,对 $sql->fetch() 的第二次调用不起作用。

尝试重命名第二个变量,这样它们就不会重叠。

关于php - MySQL在php foreach循环中只插入几行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51667356/

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