SET sql_mode=“” character_set_client

 

先看这段代码:

  
  
  
  
  1. if($this->version() > '4.1') { 
  2.             if($this->charset) { 
  3.                 @mysql_query("SET character_set_connection=$this->charset, character_set_results=$this->charset, character_set_client=binary"$this->link); 
  4.             } 
  5.             if($this->version() > '5.0.1') { 
  6.                 @mysql_query("SET sql_mode=''"$this->link); 
  7.             } 
  8.         } 

首先version是根据mysql_get_server_info函数获取了当前mysql的版本号

如果是大于4.1版本 那么根据当前编码 设置数据库连接的初始编码

--------------------------------------

对于:character_set_connection character_set_results

看:http://blog.csdn.net/ypb455360299/article/details/7528099

--------------------------------------

至于这个设置:character_set_client=binary

在PHP语言情况下
可以防止一些SQL诸如 比如我在你的登陆窗口写
“用户名”=%dc%27%20or%201=1%20limit%201%20/*&
“密码”=88888*/%23
就有可能直接登陆你后台
但是你如果设置了SET character_set_client = binary
MYSQL 就会以二进制发送 不存在宽字节注入

--------------------------------------

set sql_mode CSDN有人已经写的很全了:

http://blog.csdn.net/winsonyuan/article/details/8202630

 

你可能感兴趣的:(set)