无法从RSS Feed将数据插入MySQL数据库

时间:2012-03-12 09:23:08

标签: php mysql xml rss

我正在使用SimplePie(并使用过MagPie)开源RSS解析器。我已经能够获取RSS提要并在网页上显示标题,描述和日期。

我试图将数据插入到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提要中获取的代码(在本例中我使用Macrumors),这是我用来插入MySQL数据库的代码。

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

虽然我提取并显示至少20篇文章,但当我刷新脚本时只有3&#34;文章&#34;被插入到数据库中。如果我从MySQL查询中删除了描述的内容,我可以插入我提取的所有标题和其他数据。

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

2 个答案:

答案 0 :(得分:0)

尝试做:


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

它应该可行

注意: - 在插入表之前,您需要对所有值执行此操作。 希望它有所帮助

答案 1 :(得分:0)

很可能您没有使用mysql_real_escape_string()来确保在将文本放入SQL字符串之前对文本进行转义。如果说明包含任何',您最终会得到类似的内容

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

字符串将以'中的don't结尾,文本的其余部分将导致语法错误。