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’;

bom头的影响

前阵子有同事写了一段代码,在setcookie的时候出现下面错误。 Cannot modify header information – headers already sent by …. 这个错误非常之常见,如果在setcookie之前输出了任何文本内容,便会有上述错误提示。由于页面头部require了若干文件,一行行排查是很麻烦的事情,因此,我在页面顶部加上: ob_start(); 在setcookie之前加上代码: ob_get_clean(); 这是为了获取setcookie之前页面输出的内容。页面运行后,显示输出了一个空字符串,也就是说,setcookie之前没有任何输出。 继而用vim打开了源文件,发觉vim有打开bomb选项,怀疑因此给代码添加了隐藏的字符串,关闭之: set nobomb 问题解决。 BOM是什么意思? BOM是“Byte Order Mark”的缩写,用于标记文件的编码。并不是所有的文本编辑工具都能识别BOM标记