组织一些代码片段,方便回顾。
1. 随机排序数组
uasort($gateways, function () {
return mt_rand() - mt_rand();
});
2. 通过session统计在线人数
defined('MAX_IDLE_TIME') or define('MAX_IDLE_TIME', 3);
class onLineUser {
public static function getOnlineUserNumber() {
//获取session保存路径
$path = session_save_path();
if (trim($path)=="") {
return FALSE;
}
$d = dir($path);
//根据session文件统计在线用户数
$i = 0;
while (false !== ($entry = $d->read())) {
//查找session文件
if ($entry != '.' and $entry != '..') {
if (time()- filemtime($path."/$entry") < MAX_IDLE_TIME * 60) {
$i++;
}
}
}
$d->close();
return $i;
}
}
3. 如何根据查询结果来更新数据?
如果像这样写在一个SQL中会报错:
DELETE
FROM
users_project_engineering_nodes
WHERE
project_engineer_node_id IN (
SELECT
users_project_engineering_nodes.project_engineer_node_id
FROM
users_project_engineering_nodes
INNER JOIN project_engineerings_nodes ON users_project_engineering_nodes.project_engineer_node_id = project_engineerings_nodes.id
WHERE
project_engineerings_nodes.is_complete = 1
)
错误:You can't specify target table 'users_project_engineering_nodes' for update
解决: