2012-02-10 18 views
0

我試圖更新我在mysql表中超過5,000個視頻的詳細信息,但它會在一段時間後保持超時。如何在更新MySQL表格時停止更新YouTube視頻指標超時

我基本上通過包含YouTube視頻代碼的記錄進行循環,並使用YouTube提要API查找詳細信息。

任何人都可以幫助解釋爲什麼以及如何修復它嗎?

這裏是我的代碼: -

<?php 

$con = mysql_connect("hostname", "username", "pw"); 
if (!$con) 
    { 
    die('We could not connect you to our network at this moment. We apologise for the inconvenience please try again later'); 
    } 

mysql_select_db("sociallandscaper", $con); 

set_time_limit(0); 

$ccresult = mysql_query("SELECT vidcode FROM ytt"); 
while($row = mysql_fetch_array($ccresult)) { 
$c = $c +1; 

$vidcode = $row['vidcode']; 
$url = "http://gdata.youtube.com/feeds/api/videos?q={$vidcode}&v=2&alt=json"; 
$json_single_vid = file_get_contents($url); 
$json_single_vid_data = json_decode($json_single_vid); 
$likes = $json_single_vid_data->{'feed'}->{'entry'}[0]->{'yt$rating'}->{'numLikes'}; 
$dislikes = $json_single_vid_data->{'feed'}->{'entry'}[0]->{'yt$rating'}->{'numDislikes'}; 
$raters = $json_single_vid_data->{'feed'}->{'entry'}[0]->{'gd$rating'}->{'numRaters'}; 
$fav = $json_single_vid_data->{'feed'}->{'entry'}[0]->{'yt$statistics'}->{'favoriteCount'}; 
$average = $json_single_vid_data->{'feed'}->{'entry'}[0]->{'gd$rating'}->{'average'}; 
$comments = $json_single_vid_data->{'feed'}->{'entry'}[0]->{'gd$comments'}->{'gd$feedLink'}->{'countHint'}; 

$mSQL = "UPDATE ytt SET vidraters = '$raters',vidrating = '$average',vidlikes = '$likes',viddislikes = '$dislikes',vidcomments = '$comments',vidfavs = '$fav' WHERE vidcode = '$vidcode'"; 

mysql_query($mSQL); 

echo $c."<br/>"; 
    } 

    ?> 

我會爲任何建議非常感激。

感謝

喬納森

+0

請求後連接到mysql – dynamic 2012-02-10 23:15:09

回答

0

重構較小的塊代碼和處理。這具有可以擴展的優勢,而現在只能解決您的問題。另外我可能會補充說我不知道​​什麼是「超時」連接到mysql?整個腳本?與YouTube的連接?