我把一個簡單的腳本放在一起,從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