PDO_MYSQL的一些预定义常量

PDO_MYSQL是PHP Data Objects (PDO) interface的一个mysql扩展。仔细看看php手册上面,其实还是有些有趣的参数可供使用,例如:

PDO::MYSQL_ATTR_INIT_COMMAND (integer)

Command to execute when connecting to the MySQL server. Will automatically be re-executed when reconnecting.

当我使用PDO_MYSQL连上mysql以后,可以利用这个参数自动执行一些QUERY。最常见的使用场合是连接mysql使用utf-8字符集:

$db = new PDO("mysql:dbname=dbname", "user", "password", 
	array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));

以上代码会在连上mysql之后马上执行sql:

set names 'utf8';

3 replies on “PDO_MYSQL的一些预定义常量”

  1. 如果定义了MYSQL_ATTR_INIT_COMMAND,流程如下:

    1. php连上数据库,顺便执行set names utf8
    2. 回到php并声明数据库已连好可用

    如果exec sql:set names utf8,流程可能是这样

    1. php连上数据库
    2. 回到php并声明数据库已连好可用
    3. php执行sql:set names utf8
    4. 回到php声明sql已经执行完毕

    多了一次服务器间的交互

Comments are closed.