我正在使用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脚本还是我插入数据库的方式。
答案 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
结尾,文本的其余部分将导致语法错误。