php面试宝典7

1. mysql_real_escape_string mysql_escape_string有什么本质的区别,有什么用处,为什么被弃用?

答:

(1)mysql_real_escape_string需要预先连接数据库,并可在第二个参数传入数据库连接(不填则使用上一个连接)

(2)两者都是对数据库插入数据进行转义,但是mysql_real_escape_string转义时,会考虑数据库连接的字符集

(3)被弃用的原因是官方不再建议使用mysql_xx的数据库操作方式,建议使用pdo和mysqli(连接复用(持久化)),因为不管从性能跟安全来看,mysqli都比mysql要好

(4)它们的用处都是用来能让数据正常插入到数据库中,并防止sql注入,但是并不能做到100%防止sql注入


2. 再问:为什么不能100%防止?

答:

(1)因为客户端编码以及服务器端编码不同,可能产生注入问题,但是其实这种场景不多见。


3.什么是内存泄漏,js内存泄漏是怎么产生的?

答:

(1)内存泄漏是因为一块被分配内存既不能被使用,也不能被回收,直到浏览器进程结束

(2)页面元素被删除,但是绑定在该元素上的事件未被删除

(3)闭包维持函数内局部变量(外部不可控),使其得不到释放

(4)意外的全局变量

(5) 引用被删除,但是引用内的引用,还存在内存中


4.什么是闭包,跟原型链、作用域链有什么关联

答:


5.一台电脑配置无限好,可以同时打开多少个网页

答:

65535-1000 = 64535(端口数)


6.ip地址能被伪造吗

答:

http头部可以被篡改,但是只能修改X_FORWARDED_FOR,真实ip地址(REMOTE_ADDR)很难修改(除非是路由器去修改),因为真实ip是底层会话ip地址,而且因为TCP 3次握手的存在,连接无法建立,伪造的意义不大,至于UDP的话,一般是内网才使用UDP通信


7.有100万个奖品,每个人可以中奖3次,先到先得,怎么控制并发,不能发超,并保证完全的先到先得模式


8.innodb的master线程在什么情况下fork其他子线程


9.数据链路层的数据是怎么校验的,有哪些校验方式

答:crc32,别的校验可能是取模校验奇偶数吧。


10.b+树的查询时间复杂度是多少,哈希表是多少,为什么数据库索引用b+树存储,而不是哈希表,数据库索引存储还有其他数据结构吗

答:

(1).O(log(n)),O(1)

(2)因为哈希表是散列的,在遇到`key`>'12'这种查找条件时,不起作用,并且空间复杂度较高

(3)b+数根据层数决定时间复杂度,数据量多的情况下一般4-5层,然后用二分法查找页中的数据,时间复杂度远小于log(n)



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值