PHP面試寶典

組織一些代碼片段,方便回顧。

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

解決:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章