欢迎来到天天文库
浏览记录
ID:51693011
大小:50.95 KB
页数:5页
时间:2020-03-15
《PHP5中的PDO使用入门.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、PHP5中的PDO使用入门以前由于兼容性的问题,一直只封装了mysql和mysqli,没有封装pdo,不过我想现在已经没有必要死拖着php4不放了,应该彻底面对PHP5及其后版本。优点:1.效率更高类似于adodb,phplib等库,pdo支持多种数据库,也就是说如果不使用mysql做为数据库程序也不需要进行什么更改,仅仅改一个参数就行了,由于pdo对多数据库操作的封装是用C实现的,因此比adodb等PHP实现方式效率更高,并且以后的php6版本也不再支持mysql系列函数。在连续执行相同结构的sql时,可以先预备好结构,最后一次性执行,这样也会提升效率。2.更安全输入sql使
2、用占位符的方式,基本消除sql注入现象发生。当然以前的方式过滤得当也同样安全。为了不修改程序,封装了PDO的操作。PHP代码
3、行时的时间很接近,误差在0.005秒左右,要求不严格情况下可以当作页面开始时间 var $runTime; //记录上次运行时间 /** * 用pdo连接mysql */ public function __construct($user, $pass, $dbname, $host=“localhost”, $charset = “utf8″, $options = array(PDO::ATTR_PERSISTENT => true)) { try{ par
4、ent::__construct(“mysql:host=”.$host.“;dbname=”.$dbname, $user, $pass, $options); $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); //异常处理:也可以使用PDO默认的异常处理ERRMODE_EXCEPTION $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); //fetch模
5、式,关联数组 $this->query(“SET NAMES ’$charset’”); //连接字符集 if(DEBUG){ $this->startTime = microtime(); $this->runTime = $this->startTime; } }catch (PDOException $e){ die(‘无法连接mysql,请检查参数’);
6、 } } /** * 取得所有数据,返回二维数组,可使用占位符 * @example getAll(”select * from test”) * @return array */ public function getAll($sql) { $rs = $this->prepare($sql); $params = func_get_args(); $paramsCnt = count($params); for
7、($i=1; $i<$paramsCnt; $i++) { $rs->bindParam($i, $params[$i]); } $rs->execute(); $all = $rs->fetchAll(); if(DEBUG) self::debug($sql); unset($rs); return $all; } /*
此文档下载收益归作者所有