За последние 24 часа нас посетили 20514 программистов и 1135 роботов. Сейчас ищет 781 программист ...

не грузит информацию в базу данных

Тема в разделе "PHP и базы данных", создана пользователем MariaFilatova, 23 апр 2020.

  1. MariaFilatova

    MariaFilatova Новичок

    С нами с:
    22 апр 2020
    Сообщения:
    7
    Симпатии:
    0
    добрый день,

    помогите пожалуйста. ссылки сохранились в базу данных, а вот текста и названия не сохраняются. В чем может быть ошибка? Проверила несколько раз, вроде код правильно работает. Спасибо.

    PHP:
    //DB Credentials

    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASSWORD', '');
    define('DB_NAME', 'testparser');

    //libary for parsing
    require_once "simple_html_dom.php";
    require_once "db.class.php";

    //URL for parse
    $url = 'http://example.com/';
    //Connection to DB
    $db = new DB(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

    function getArticleData($url)
    {
    global $db;

    $article = file_get_html($url);

    $h1 = $db->escape($article->find('h1', 0)->innertext);
    $content = $db->escape($article->find('article', 0)->inneretxt);

    $data = compact('h1', 'content');

    $sql = "
    update articles
    set h1 = '{$h1}',
    content = '{content}',
    date_parsed = NOW()
    where url = '[$url]'

    ";

    $db->query($sql);

    return $data;
    }

    //get page
    $html = file_get_html($url);

    function getArticlesLinksFromCatalog($url)
    {
    global $db;
    //echo PHP_EOL . $url . PHP_EOL . PHP_EOL;
    $html = file_get_html($url);
    foreach ($html->find('a.more-link') as $link_to_article) {
    $article_url = $db->escape($link_to_article->href);
    $sql = "
    insert ignore into articles
    set url = '{$article_url}'

    ";
    $db->query($sql);
    //Parse and save current article
    getArticleData($link_to_article->href);

    echo $link_to_article->href . PHP_EOL;
    }
    //recursion to next page
    if ($next_link = $html->find('a.next', 0)) {
    getArticlesLinksFromCatalog($next_link->href);
    }
    }

    getArticlesLinksFromCatalog($url);