使用PDO的一些备忘

之前在论坛上灌水的时候,也曾经看到别人提到过PDO的一些生僻用法。但是当时觉得短期内不会用上,所以不是太在意。等到要用的时候,满世界也找不到出处。 这使我下定决心,做点PDO的小笔记,慢慢补。 设定PDO的fetchMode 初始化pdo的时候,就设定好PDO的fetchMode,应该能省点事,比如我最喜欢的fetchMode是FETCH_OBJ。 $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO:FETCH_OBJ); 其中PDO::ATTR_DEFAULT_FETCH_MODE是php 5.2.0之后才新增的常量 还可以在实例化PDO对象的时候就完成这个设定: $dbh = new PDO(“mysql:dbname=dbname”, “user”, “password”, array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO:FETCH_OBJ));

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

ubuntu下安装php5 + pdo

这几天尝试把工作机迁到ubuntu上来做开发,系统安装好之后的首要任务是安装php+mysql的开发环境. 我打算直接安装php5, pdo_mysql, 下面是安装过程的记录 首先我直接用apt-get安装了apache2,php5,pear以及mysql5, 为了方便后续的安装,还加上了make和libmysqlclient sudo apt-get install apache2-mpm-prefork sudo apt-get install php5 sudo apt-get install php5-dev sudo apt-get install php5-pear sudo apt-get install mysql-server-5.0 sudo apt-get install make sudo apt-get install libmysqlclient15-dev pdo在ubuntu的apt里头似乎还找不到安装源,所以通过pecl来安装这个扩展,非常简单 —- 如果海底光纤能连通的话: pecl install pdo 增加一行: extension=pdo.so 到文件: /etc/php/apache2/php.ini /etc/php/cli/php.ini 接下来安装pdo_mysql碰到一些问题, 直接跑pecl install pecl_mysql会出现一些错误,搜索了一下发现是pecl本身的问题,下面是个比较简单的解决办法: wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz tar xzvf PDO_MYSQL-1.0.2.tgz cd […]

php 5.2 + pdo_mysql安装

这天在一台redhat的机器上安装php 5.2+pdo_mysql,走了些弯路,浪费了不少时间.记录一下: 首先我按照之前记录的手册安装php,参数上有些变化,configure参数增加了–with-pdo=shared –with-pdo-mysql=shared 最后得到一些错误提示: checking for MySQL support for PDO… yes, shared checking for mysql_config… /usr/bin/mysql_config ./configure: line 3038: -e: command not found ./configure: line 3039: -e: command not found checking for mysql_query in -lmysqlclient… no configure: error: mysql_query missing!? 于是暂时去掉了pdo-mysql模块的安装,直接安装pecl.php.net上最新的PDO_MYSQL tar -xf PDO_MYSQL.tar cd PDO_MYSQL-1.0.1 phpize ./configure 仍然出现之前的错误提示.很郁闷,在google上搜索了一下,有个最粗鲁最暴力的办法就是直接修改configure,绕过mysql_query的检测,这样能够编译成功,但是使用的时候调用pdo_mysql模块失败. 偶在这个问题上是卡了很久,在google的搜索结果里一个个比对,最后一个比较有建设性的提示是让俺回去查glibc的版本. rpm -qa|grep glibc 这样看到这台机器上的glibc版本是2.3,而我下载安装的mysql却是for […]