2012-03-12 153 views
1

我正在使用SimplePie(并使用MagPie)开源RSS解析器。我能够获取RSS提要,并将标题,说明和日期显示在网页上。无法将数据从RSS Feed插入到MySQL数据库

我试图将数据插入到MySQL数据库中,但在某些方面失败了,这导致了混淆。

require_once 'rss_fetch.inc'; 

$url = 'http://macrumors.com/rss.xml'; 
$rss = fetch_rss($url); 

echo "Site: ", $rss->channel['title'], "<br>"; 

foreach ($rss->items as $item) { 
    $title = $item[title]; 
    $url = $item[link]; 
    $pub = $item[pubdate]; 
    $desc = $item[description]; 

    echo "<a href=$url>$title</a></li><br>"; 
    echo "$pub<br>"; 
    echo "<p>$desc</p><br>"; 
    echo "<br>"; 

这是代码,以便从RSS源(在这个例子中我使用加拿大家园),并在这里获取是我使用中插入到MySQL数据库的代码。

mysql_query("INSERT INTO articles (title, linkto, published, contents) VALUES ('$title', '$url','$pub','$desc')"); 

虽然我在获取和显示至少20篇文章,我只刷新3“物品”被插入到数据库的脚本。如果我从我的MySQL查询中删除了描述的内容,我可以插入我提取的所有标题和其他数据。

所以我不确定我的问题是与我的RSS脚本还是我插入数据库的方式有关。

回答

0

很可能你没有使用mysql_real_escape_string()来确保文本在被放入你的SQL字符串之前被转义。如果描述包含任何',则最终会得到类似的结果;

INSERT into xx (yy) VALUES ('don't'); 

的字符串将在don't'和文本的其余部分将最终导致语法错误。

0

尝试做:

 

$desc = mysql_real_escape_string($item[description]); 
 

,它应该工作

注: - 你需要插入到表之前,要做到这一点对所有的值。 希望它有帮助