我把一个简单的脚本放在一起,从tweetmeme api中提取内容,然后将其插入数据库以便进一步格式化。这是我目前拥有的,但它插入没有记录,并且没有为数据库连接返回任何错误,所以我可以假定它连接并在插入时失败。数据库连接但不插入记录?
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '****';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'footy';
mysql_select_db($dbname) or die('Couldnt connect to database table');
$tweetmeme = "http://api.tweetmeme.com/stories/popular.xml?category=sports-soccer&count=30" ;
$xml = @simplexml_load_file($tweetmeme) or die ("no file loaded") ;
echo count($xml->stories->story)."stories in the XML file<br /><br />";
echo $xml->getName() . "<br /><br />";
foreach($xml->stories->story as $story)
{
$title=$story->title;
$url=$story->url;
$media_type=$story->media_type;
$created=$story->created_at;
//$current_time=$date();
$url_count=$story->url_count;
$comment_count=$story->comment_count;
$excerpt=$story->excerpt;
$sql = "INSERT INTO ft_tweets (title,url,media_type,created_at,mention_count,comment_count,excerpt) VALUES ($title,$url,$media_type,$created,$url_count,$comment_count,$excerpt)";
$result = mysql_query($sql);
做vardump()上的各个项目返回“对象(的SimpleXMLElement)”,这是XML结构是什么样子的一个例子link text
放一个print语句的foreach循环中,看看它是否是第一个到达那里,我会建议你也打印出插入查询,看看是否作品。 – 2010-09-06 23:53:59
使用echo $ sql;在声明$ sql之后返回如下:INSERT INTO ft_tweets(title,url,media_type,created_at,remark_count,comment_count,excerpt)VALUES(MARTIN SAMUEL:没有人喜欢Ashley Cole,但你必须承认:他很好| Mail Online, http://www.dailymail.co.uk/sport/football/article-1309568/MARTIN-SAMUEL-No-likes-Ashley-Cole-admit-Hes-good.html,news,2010-09-06 23:14 :35,12,0,Mail Online:MARTIN SAMUEL:没有人喜欢阿什利科尔,但你必须承认:他很好:尽管标题很长...... http://bit.ly/baG67n)看起来正确。 – 2010-09-07 00:03:46
您正在将原始字符串惰性化到查询中。你需要用'引号'将它们包围起来,并通过'mysql_real_escape_string()'运行文本来生成一个有效的查询。如果你使用'mysql_query()'调用('$ result = mysql_query($ sql)或者die(mysql_error())'来检查错误,''你会看到这个。 – 2010-09-07 02:03:19