PHP 工程师面试题
1、 如何修改
SESSION 的生存时间
a
、其实 Session
还提供了一个函数 session_set_cookie_params();
来设置 Session
的生存期的,该函数必须在 session_start() 函数调用之前调用:
<?php
//
保存一天
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_SESSION["admin"] = true;
?>
b 、
2、请简述项目中优化 sql 语句执行效率的方法,从哪些方面,sql 语句性能如何分析?
(1)选择最有效率的表名顺序
(2)WHERE 子句中的连接顺序
(3)SELECT
‘
子句中避免使用 *’
(4)用 Where 子句替换 HAVING 子句
(5)通过内部函数提高 SQL 效率
(6)避免在索引列上使用计算。
(7)提高 GROUP BY 语句的效率, 可以通过将不需要的记录在 GROUP BY 之前过滤掉。
3、mysql_fetch_row()
和 mysql_fetch_array() 有什么分别?
mysql_fetch_row() 把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵
列的索引 0
,第二栏在索引 1,如此类推。mysql_fetch_assoc() 把数据库的一列储存在
一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回
“first_name”
“
、 last_name” “
、 email”三个栏位,阵列的索引便是
“first_name”
“
、 last_name” “
和 email”。mysql_fetch_array() 可以同时送回
mysql_fetch_row()
和 mysql_fetch_assoc() 的值。
4、请举例说明在你的开发过程中用什么方法来加快页面的加载速度
答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生
成静态,图片等大文件单独服务器。使用代码优化工具啦。
5、防止 SQL 注射漏洞一般用__addslashes___函数。
6、对于大流量的网站,您采用什么样的方法来解决访问量问题
答:首先,确认服务器硬件是否足够支持当前的流量
其次,优化数据库访问。
第三,禁止外部的盗链。
第四,控制大文件的下载。
第五,使用不同主机分流主要流量
第六,使用流量分析统计软件