Php 在foreach循环中写入到数据库的链接失败

Php 在foreach循环中写入到数据库的链接失败,php,mysql,Php,Mysql,我正在使用将记录写入数据库,但它似乎没有写入记录 问题在于foreach循环。它输出所有URL和以下错误: 注意:未定义的变量:第28行C:\xampp\htdocs\meh\crawler.php中的url 您希望mysql查询在html文件中插入foreach链接,而不是在循环后运行一次。在循环中移动代码: foreach ( $html->find('a') as $element ) { if ( strpos($element->href, "cls") !==

我正在使用将记录写入数据库,但它似乎没有写入记录

问题在于foreach循环。它输出所有URL和以下错误:


注意:未定义的变量:第28行C:\xampp\htdocs\meh\crawler.php中的url



您希望mysql查询在html文件中插入foreach链接,而不是在循环后运行一次。在循环中移动代码:

foreach ( $html->find('a') as $element ) {
    if ( strpos($element->href, "cls") !== false ) {
        $url = "http://expatriates.com" . $element->href . '<br>';
        $sql = "INSERT INTO urlstocrawl (url) VALUES ('$url')";
        if ( !mysqli_query($con,$sql) ) {
            die('Error: ' . mysqli_error($con));
        }
        echo '<br>'.'<p>'."1 record added" . $url;
    }
}
foreach($html->find('a')as$element){
if(strpos($element->href,“cls”)!==false){
$url=”http://expatriates.com“$element->href.
”; $sql=“插入到urlstocrawl(url)值(“$url”)”; 如果(!mysqli_query($con,$sql)){ die('Error:'.mysqli_Error($con)); } 回显“
”。”。“添加了1条记录”。$url; } }

注意对
if
条件的修改。当字符串不存在时返回
false
,或者返回一个指示位置的整数,从0开始。这意味着如果
cls
位于字符串的开头,条件可能会失败。通过这种严格的类型检查,您可以确定所需的行为。

在打开
后立即将错误报告添加到文件顶部。您是否考虑过网页内容可能包含引号字符的可能性非常小?另外,我认为您的
foreach($links as$link)括号{
可能放错了位置。注意:未定义的变量:C:\xampp\htdocs\meh\crawler.php中的url,第28Felix行:@Fred ii-mille gratiePrego amico mio,ciaoébuongiorno!
foreach ( $html->find('a') as $element ) {
    if ( strpos($element->href, "cls") !== false ) {
        $url = "http://expatriates.com" . $element->href . '<br>';
        $sql = "INSERT INTO urlstocrawl (url) VALUES ('$url')";
        if ( !mysqli_query($con,$sql) ) {
            die('Error: ' . mysqli_error($con));
        }
        echo '<br>'.'<p>'."1 record added" . $url;
    }
}