2013-02-28 49 views
0

我遇到這個問題,每當我嘗試獲取網址(從一個MySQL數據庫),然後使用cURL向URL發佈請求,它只會發佈其中一個網址。如果這改變了我的數據庫,我總共有11個URL。cURL不張貼到來自數據庫的幾個網址

這裏是我的代碼:

$result = mysql_query ("SELECT * FROM urls"); 
while ($row = mysql_fetch_array($result)) { 

    $ch = curl_init(); 
    $url = $row['url']; 
    curl_setopt($ch, CURLOPT_URL,$url); // set url to post to 
    curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // allow redirects 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable 
    curl_setopt($ch, CURLOPT_TIMEOUT, 0); // times out after Ns 
    curl_setopt($ch, CURLOPT_POST, 1); // set POST method 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "user=test"); // add POST fields 
    $result = curl_exec($ch); // run the whole process 
    curl_close($ch); 

    echo $result; 
}; 

在此先感謝。

+0

只是爲了說明一下,您試圖通過POST將「user = test」發送到您從數據庫中提取的每個URL中? – JCSickmeyer 2013-02-28 21:09:10

+0

@JCSickmeyer - 是的,這是正確的。 – HHH 2013-02-28 21:19:20

+0

爲了提高效率,您不必在每次迭代中關閉/重新打開卷曲。你可以在循環中簡單地調用CURLOPT_URL和curl_exec()。捲曲手柄可以重複使用。 – 2013-02-28 21:19:37

回答

0

您是否嘗試過echo $ row ['url']並查看您在循環中獲得了什麼?

+0

是的,我有,它確實在表中回顯出所有的URL。 – HHH 2013-02-28 21:17:29

+0

它可能會導致您的php執行時間不足以處理所有請求,您可以增加時間限制或將其添加到您的腳本set_time_limit(0); – user969068 2013-02-28 21:20:43

+0

它仍然無法正常工作。 – HHH 2013-02-28 21:36:26