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

解决:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭记北宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值