1

私はこのような関数を作りました:

function getFeed($feed_url) {
    $content = file_get_contents($feed_url);
    $x = new SimpleXmlElement($content);
    echo "<h3>".$x->channel->title."</h3><div>";
    foreach ($x->channel->item as $entry) {

        $title = utf8_decode(stripslashes(mysql_real_escape_string($entry->title)));
        $link = utf8_decode(stripslashes(mysql_real_escape_string($entry->link)));
        $desc = utf8_decode(stripslashes(mysql_real_escape_string($entry->description)));
        $chkexist="SELECT * FROM articles WHERE title='$title' LIMIT 1";
        $i =1;


        $chkresult=mysql_query($chkexist);
        $countresult=mysql_num_rows($chkresult);
        if ($title=="") {
            echo "No article title, skipping ".$i++."<br>";
        }else{
            if ($countresult==1) {
            echo "The article: ".utf8_encode($title)." Exists. Passing.<br>";
            }else {
                $sql="INSERT INTO articles (title,link,description,date) VALUES ('$title','$link','$desc',NOW())";
                mysql_query($sql) or die("Failed to save articles");
                echo "The article: ".utf8_encode($title)." Is saved<br>";
            }
        }   
    }
echo "</div>";
}

それはおそらく完璧ではありません、私はこのゲームにかなり慣れていませんが、たとえばこのフィードを提供しようとすると: http://www.tek.no/feeds/general.xml保存されますが、すべてのアイテムではなく、最後に次のようなエラーが表示されます: 警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定しています。29 行目の C:\xampp\htdocs\index.php で指定されたブール値 記事を保存できませんでした。

ご覧のとおり、ローカルで作業しています。

http://www.dagbladet.no/rss/innenriks/のような別のフィードを試すと、4 つのアイテムが保存され、クエリでカスタム エラー メッセージが表示されます。

ここで私が間違っていることは何ですか?関数を試すために xampp または wampp を持っている人はいますか?

4

1 に答える 1

0

実際、$desc はエスケープされず、mysql_real_escape_string(); を通じて変数を送信しました。したがって、私のクエリでは次のようにしました。 ','"‌.mysql_real_escape_string($desc)."','$pubdate',NOW())";

今では動作します。

于 2015-07-19T13:43:12.070 に答える