PHP 2020经典面试题集( 二 )


两者都可通过时间来设置时间长短
14.PHP 不使用第三个变量实现交换两个变量的值
//方法一
$a.=$b;
$b=str_replace($b,"",$a);
$a=str_replace($b,"",$a);
 
//方法二
list($b,$a)=array($a,$b);
var_dump($a,$b);
15.写一个方法获取文件的扩展名
function get_extension($file){
   //方法一   
   return  substr(strrchr($file,'.'), 1);   
   //方法二   
   return  end(explode('.', $file));
   }echo  get_extension('fangzhigang.png'); //png
16.用PHP打印出前一天的时间格式是2017-3-22 22:21:21
$a= date("Y-m-d H:i:s", strtotime("-1 days"));
17.sql语句应该考虑哪些安全性
(1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译sql语句绑定
(2)使用最小权限原则,特别是不要使用root账户,微不同的动作或者操作建立不同的账户
(3)当sql出错时,不要把数据库出错的信息暴露到客户端
18.优化MySQL 数据库方法
(1)选取适当的字段,打字段设置为NOT NULL,在查询的时候数据库不用比较NULL;
(2)使用链接(join)代替子查询;
(3)使用联合(UNION)查询代替手动创建临时表;
(4)尽量减少使用(LIKE)关键字和通配符
(5)使用事务和外健
19.对于大流量的网站,你会采用什么方法来解决访问量?
(1)首先确认服务器硬件是否满足支持当前的流量;
(2)优化数据库的访问;
(3)禁止外部盗链;
(4)控制大文件下载;
(5)使用不同的主机分流;
(6)使用流量分析统计;
20.mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],$row[1],这样以数组下标来读取数据,
 
而MySQL_fetch_array()返回的数组既包含第一种,也包含键值对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):$row['username']$row['passwd']
21.MySQL的几个概念:主键,外键,索引,唯一索引
主键(primary key) 能够唯一标识表中某一行的属性或属性组 。一个表只能有一个主键,但可以有多个候选索引 。主键常常与外键构成参照完整性约束,防止出现数据不一致 。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引 。
 
外键(foreign key) 是用于建立和加强两个表数据之间的链接的一列或多列 。外键约束主要用来维护两个表之间数据的一致性 。简言之,表的外键就是另一表的主键,外键将两表联系起来 。一般情况下,要删除一张表中的主键必须首先要确保其它表中的没有相同外键(即该表中的主键没有一个外键和它相关联) 。
 
索引(index) 是用来快速地寻找那些具有特定值的记录 。主要是为了检索的方便,是为了加快访问速度,按一定的规则创建的,一般起到排序作用 。所谓唯一性索引,这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一 。
 
总结:
 
主键一定是唯一性索引,唯一性索引并不一定就是主键 。
一个表中可以有多个唯一性索引,但只能有一个主键 。
主键列不允许空值,而唯一性索引列允许空值 。
主键可以被其他字段作外键引用,而索引不能作为外键引用 。
22.mysql数据库引擎有哪些?
MyISAM、 ISAM、HEAP、InnoDB、BDB、CVS...
23.谈谈你对 mysql 引擎中的MyISAM与InnoDB的区别理解?
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定 。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持 。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能 。
 
以下是一些细节和具体实现的差别:
 
MyISAM与InnoDB的区别是什么?
1、 存储结构
MyISAM:每个MyISAM在磁盘上存储成三个文件 。第一个文件的名字以表的名字开始,扩展名指出文件类型 。.frm文件存储表定义 。数据文件的扩展名为.MYD (MYData) 。索引文件的扩展名是.MYI (MYIndex) 。


推荐阅读