組織一些代碼片段,方便回顧。
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
解決: