-2

我在数据库中有一个链接列表,我想从中获取一些数据。

所有脚本都在工作,除了我从数据库中获取链接并将其粘贴到简单 DOM 函数中的部分。" 包括 ('utile/db.php'); include_once('utile/simple_html_dom.php');

$dbh = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8;", $username, $password);
$sth = $dbh->query("SELECT link FROM pilots where year = '2007' and Contry ='CZ' and zboruri <> '101' limit 3 ");

foreach ($sth as $url) {
     functie ($url['link']);
}

function functie($lin){
     $linkul=file_get_html("$lin");

// pages number
     $paging = $linkul->find('div[class*=paging]',0);
     echo $paging;
     $numar=-4;
     foreach($paging->find('a') as $element=>$item){$numar++;}
     echo $numar;
}

" 我收到以下错误:

Fatal error: Call to a member function find() on null in C:\xampp\htdocs\para\teste.php on line 269

如果我手动更改链接,它将起作用。

我认为这与我如何从数据库中提取链接并将其插入函数有关。

谢谢

4

2 回答 2

0

foreach 中 fetchALL 的问题。换行:

foreach($sth->fetchAll() as $url){

工作的最终代码:

include ('utile/db.php');
include_once('utile/simple_html_dom.php');

$dbh = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8;", $username, $password);
$sth = $dbh->query("SELECT link FROM pilots where zboruri > '101' limit 3");

foreach($sth->fetchAll() as $url){
     functie ($url['link']);
}

function functie($lin){
  var_dump($lin);
     $linkul=file_get_html("$lin");

     $paging = $linkul->find('div[class*=paging]',0);// pages number
     echo $paging;
     $numar=-4;
     foreach($paging->find('a') as $element=>$item){$numar++;}
     echo $numar;
}

谢谢你的建议。

于 2016-10-20T19:10:56.937 回答
-1

当我使用 PDO 时,我使用准备好的语句,因此获取查询结果的语法有点不同......但我认为你需要从 $sth 中获取一行,因为它将是一个记录集。这是我所做的一个片段

    $dbconn = new PDO('mysql:host='.$hostname.';port='.$dbPort.';dbname='.$dbName.';charset=utf8', $dbuser, $dbpass,array(PDO::MYSQL_ATTR_FOUND_ROWS => true));
    $dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $result=$dbconn->prepare($query);
    $result->execute($arr);
    if(!$result){
        // do your error handling, result is either false 
        // for error or contains a recordset

        $errorMessage=$dbconn->errorInfo();

    }

    $result->setFetchMode(PDO::FETCH_ASSOC);
    while($row=$result->fetch()){

    // do stuff here, $row is an associative array w/ the 
    //keys being the column titles in your db table

        print_r($row);

    }
于 2016-10-20T02:17:05.613 回答