Php 创建记录列表并稍后插入
我需要控制谁以及何时进入每个子页面,并将这些信息插入MySQL。我有一个MYSQL表,它将获取信息(userid、subpage、subpage id、datetime) 我在/news/view.php、/prod/view.php、/material/index.php上调用这个函数 它的工作很好,但我需要优化它一点。有什么方法可以在DB空闲时插入这些记录,或者创建列表并每小时插入它们 //编辑Php 创建记录列表并稍后插入,php,mysql,moodle,Php,Mysql,Moodle,我需要控制谁以及何时进入每个子页面,并将这些信息插入MySQL。我有一个MYSQL表,它将获取信息(userid、subpage、subpage id、datetime) 我在/news/view.php、/prod/view.php、/material/index.php上调用这个函数 它的工作很好,但我需要优化它一点。有什么方法可以在DB空闲时插入这些记录,或者创建列表并每小时插入它们 //编辑 我尝试了INSERT delay,但它不适用于我的数据库:(在Moodle/PHP中没有标准的方
我尝试了INSERT delay,但它不适用于我的数据库:(在Moodle/PHP中没有标准的方法来延迟查询,直到数据库空闲为止。“INSERT delay”在最新的MySQL中被删除,您可以在这里看到: 我可以提出两个选择:
function logstore(){
global $DB, $USER, $CFG;
$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https')
=== FALSE ? 'http' : 'https';
$host = $_SERVER['HTTP_HOST'];
$script = $_SERVER['SCRIPT_NAME'];
$currentUrl = $protocol . '://' . $host . $script;
$newsurl = $CFG->wwwroot.'/news/view.php';
$produrl = $CFG->wwwroot.'/prod/view.php';
$materialurl = $CFG->wwwroot.'/material/index.php';
$datetime = date_create()->format('Y-m-d H:i:s');
$records = new stdClass();
$records->userid = $USER->id;
if($currentUrl == $newsurl){
$records->activity = 'news';
$records->activityid = $_GET['id'];
}elseif ($currentUrl == $produrl){
$records->activity = 'prod';
$records->activityid = $_GET['id'];
}
elseif ($currentUrl == $materialurl){
$records->activity = 'material';
$records->activityid = $_GET['id'];
}
$records->datetime = $datetime;
$DB->insert_record('logstore', $records);}