0
我從我的數據庫中取得結果,並且一段時間處理每個結果。現在我想同時運行所有這些結果。這可能與PHP?同時運行foreach結果php
下面我添加了一個示例代碼,我希望對每個結果都可以同時執行查詢,而無需等待其他結果在下一步之前完成。
while ($accountdata = mysql_fetch_array($qaccountdata))
{
$un = $accountdata['email'];
mysql_query("INSERT INTO log (id, email, item,height, stamp) VALUES ('', '$un','something','', '" . strtotime('now') . "')");
}
這樣的事情呢? script.php包含進程。
<?php
$q = 1;
$mh = curl_multi_init();
while ($accountdata = mysql_fetch_array($qaccountdata)) {
$a = $accountdata['email'];
$ch.$q = curl_init();
curl_setopt($ch.$q, CURLOPT_URL, 'script.php?id='.$a);
curl_setopt($ch.$q, CURLOPT_HEADER, 0);
curl_multi_add_handle($mh,$ch.$q);
$q++;
}
$active = null;
//execute the handles
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
curl_multi_remove_handle($mh, $ch.$q);
curl_multi_close($mh);
?>
的script.php
if (isset($_GET['type'])) {
$_GET['id'] = $un
//rest of code
}
請參閱http://stackoverflow.com/questions/70855/how-can-one-use-multi-threading-in-php-applications – MeNa
它可以做到嗎? '$計數=結果 爲量($ I = 0; $ I <$計數; $ I + = 1) { 而($ accountdata = mysql_fetch_array($ qaccountdata)) { } }' – user3009108
NO。 'mysql_fetch_array($ qaccountdata)'會阻止你的程序,直到他結束。 – MeNa