Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP循环数据库多次执行有时会失败_Php_Sql_Curl_Curl Multi - Fatal编程技术网

PHP循环数据库多次执行有时会失败

PHP循环数据库多次执行有时会失败,php,sql,curl,curl-multi,Php,Sql,Curl,Curl Multi,我使用下面的multi-curl操作来检查各种web页面的状态。该函数首先获取不同的用户,然后对每个用户执行curl多请求检查不同的网页。它似乎工作正常,除了偶尔db->execute函数对除1个用户之外的所有用户都失败。该函数仅添加一组记录,并忽略其他用户的剩余数组 有人知道为什么会这样吗 // open db $db = GetDb(); // fetch user data $query = 'SELECT * FROM userinfo ORDER BY user_id DESC';

我使用下面的multi-curl操作来检查各种web页面的状态。该函数首先获取不同的用户,然后对每个用户执行curl多请求检查不同的网页。它似乎工作正常,除了偶尔db->execute函数对除1个用户之外的所有用户都失败。该函数仅添加一组记录,并忽略其他用户的剩余数组

有人知道为什么会这样吗

// open db
$db = GetDb();

// fetch user data
$query = 'SELECT * FROM userinfo ORDER BY user_id DESC';
$dbresult = $db->Execute($query);
$lists = array();
while ($dbresult && $row = $dbresult->FetchRow()) {
$one=array();
$user_id = $row['user_id'];

// create array
$data = array(array());

$data[0]['extra'] = array();
$data[0]['extra']['user_id']   = $user_id;
$data[0]['extra']['monitor_id']   = '2';
$data[0]['url']  = 'http://www.google.com';
$data[0]['post'] = 'google';

$data[1]['extra'] = array();
$data[1]['extra']['user_id']   = $user_id;
$data[1]['extra']['monitor_id']   = '6';
$data[1]['url']  = 'http://www.yahoo.com';
$data[1]['post'] = 'yahoo';

$data[2]['extra'] = array();
$data[2]['extra']['user_id']   = $user_id;
$data[2]['extra']['monitor_id']   = '4';
$data[2]['url']  = 'http://www.amazon.com';
$data[2]['post'] = 'amazon';

$data[3]['extra'] = array();
$data[3]['extra']['user_id']   = $user_id; 
$data[3]['extra']['monitor_id']   = '18';
$data[3]['url']  = 'http://www.bing.com';
$data[3]['post'] = 'bing';

$r = multiRequest($data);

echo '<pre>';
print_r($r);

$aValues = array();
foreach ($r as $aRow) {
    $aValues[] = "'" . implode("','", $aRow) . "'";
}
$values = "(" . implode("), (", $aValues) . ")";
$sQuery = "insert into `time_user_$user_id` (`user_id`, `monitor_id`, `monitor_type`, `monitor_name`, `response_code`, `user_message`, `create_date`, `string`, `status`) values $values";
$db->Execute($sQuery);

}

// close db
mysqli_close($db);

据我所知,这个班

正在使用名为Singleton的设计模式,该模式创建一次实例,并覆盖以前的调用。 要解决此问题,请不要在尝试连接PDO\mysqli时使用singleton。每次要调用数据库时,创建一个连接并为其创建一个新变量

$db = GetDb();