--by www.qzphp.cn if($this->version() > '5.0.1') { mysql_query("SET sql_mode=''", $this->link); }
sql_mode=”" 的作用:
sql_mode=”",即强制不设定MySql模式(如不作输入检测、错误提示、语法模式检查等)应该能提高性能,但有如下问题:
如果插入了不合适数据(错误类型或超常),mysql会将数据设为“最好的可能数据”而不报错,如:
/数字 设为:0/可能最小值/可能最大值
/字符串 设为:空串/能够存储的最大容量字符串
/表达式 设为:返回一个可用值(1/0-null)
所以,解决办法是:所有列都要采用默认值,这对性能也好。
如果mysql版本大于 5.0的话,在php连接mysql的时候会用如下语句
--by www.qzphp.cn if($this->version() > '5.0.1') { mysql_query("SET sql_mode=''", $this->link); }
为什么会这样写,其实原因应该是提高mysql的效率 ,
因为mysql有很多种模式,就像浏览器解析网页类型那样,根据doctype的不同,
对网页用不同的要求与模式进行解析。
当用"SET sql_mode=''"时,mysql清除的默认的模式信息,
但是这也有一个问题,那就mysql不会作入侵检测,错误提示,
这就要求程序员在进行sql操作的时候更加小心。