以下脚本可以很好地将不同的RSS源添加到mysql dbase中,并在网站上回显一些项目。但是当我尝试命令并限制'mysql_query'时,事情就停止了。我怀疑ORDER BY和LIMIT被置于错误的位置,但我看到的唯一可能是将它们放入mysql_query。有谁知道?
$feeds = array('https://www.ictu.nl/rss.xml', 'http://www.vng.nl/smartsite.dws?id=97817');
foreach( $feeds as $feed ) {
$xml = simplexml_load_file($feed);
foreach($xml->channel->item as $item)
{
$date_format = "j-n-Y"; // 7-7-2008
echo date($date_format,strtotime($item->pubDate));
echo ' ';
echo ' ';
echo '<a href="'.$item->link.'" target="_blank">'.$item->title.'</a>';
echo '<div>' . $item->description . '<br><br></div>';
mysql_query("INSERT INTO rss_feeds (id, title, description, link, pubdate)
VALUES (
'',
'".mysql_real_escape_string($item->title)."',
'".mysql_real_escape_string($item->description=htmlspecialchars(trim($item->description)))."',
'".mysql_real_escape_string($item->link)."',
'".mysql_real_escape_string($item->pubdate)."')")ORDER BY 'title' LIMIT 0,10;
}
}
答案 0 :(得分:4)
ORDER BY和LIMIT不与INSERT语句一起使用,它们需要与SELECT语句一起使用。
答案 1 :(得分:0)
我不确定mysql_query和符号。还是有点不对劲。
$selSQL = SELECT * FROM rss-feeds ORDER BY 'title';
$insSQL = "INSERT INTO 'rss_feeds' (id, title, description, link, pubdate)
VALUES (
'',
'".mysql_real_escape_string($item->title)."',
'".mysql_real_escape_string($item->description=htmlspecialchars(trim($item->description)))."',
'".mysql_real_escape_string($item->link)."',
'".mysql_real_escape_string($item->pubdate)."');
$selres = mysql_query($selsql);
$insRes = mysql_query($insSQL);
答案 2 :(得分:0)
如果有任何东西使用`来包装列名,请不要在列名周围使用单引号。你的$ selSQL也没有引号,见下文并尝试:
$selSQL = "SELECT * FROM `rss-feeds` ORDER BY `title`";
$insSQL = "INSERT INTO `rss_feeds` (`id`, `title`, `description`, `link`, `pubdate`)
VALUES (
'',
'".mysql_real_escape_string($item->title)."',
'".mysql_real_escape_string($item->description=htmlspecialchars(trim($item->description)))."',
'".mysql_real_escape_string($item->link)."',
'".mysql_real_escape_string($item->pubdate)."')";
$selres = mysql_query($selsql);
$insRes = mysql_query($insSQL);