随着php的发展,PHP开始摒弃一些东西,mysql扩展库就是其一,当然一些东西的摒弃意味着新东西的到来,那么今后连接数据库;除了用mysqli扩展库之外,可以用PDO连接数据库。
PDO数据库的配置
PDO(PHP Data Object) 是PHP 5 中新加入的内容,在PHP5.1发行,在PHP5.0的PECL扩展中也可以使用。因此,PHP5.1之后不支持mysql扩展库,而是由PDO代替。PDO_MYSQL:PDO_MYSQL是PDO接口能够完成连接mysql数据库的驱动。
PDO的配置:
在Apache的安装目录中找到php.ini,去掉”extension=php_pdo.dll”前面的”;”号;
若要连接数据库,还需要去掉与PDO相关的数据库扩展如:extension=php_pdo_mysql.dll 等前面的”;”号;
重启Apache服务器即可。
PDO操作数据库实例
建立连接
持久性链接PDO::ATTR_PERSISTENT=>true
捕捉错误
事务操作
PDO中常用的方法
上面就是一个简单的利用PDO连接数据库的示例,其实和mysql扩展库类似,很容易理解。下面是PDO中常用的方法:
PDO::query() 主要用于有记录结果返回的操作,特别是select操作。
PDO::exec()主要是针对没有结果集合返回的操作。如insert,update,delete等操作。返回影响行数。
PDO::lastInsertId()返回上次插入操作最后一条ID,但要注意:如果用insert into tb(col1,col2) values (v1,v2), (v11,v22)..的方式一次插入多条记录,lastinsertid()返回的只是第一条(v1,v2)插入时的ID,而不是最后一条记录插入的记录ID。
PDOStatement::fetch()是用来获取一条记录。配合while来遍历。
PDOStatement::fetchAll()是获取所有记录集到一个中。
PDOStatement::fetchcolumn([intcolumn_indexnum])用于直接访问列,参数column_indexnum是该列在行中的从0开始索引值,但是,这个方法一次只能取得同一行的一列,只要执行一次,就跳到下一行。因此,用于直接访问某一列时较好用,但要遍历多列就用不上。
PDOStatement::rowcount()适用于当用query(“select…”)方法时,获取记录的条数。也可以用于预处理中。
PDOStatement::columncount()适用于当用query(“select…”)方法时,获取记录的列数。
注解:
1、选fetch还是fetchall?
小记录集时,用fetchall效率高,减少从数据库检索次数,但对于大结果集,用fetchall则给系统带来很大负担。数据库要向WEB前端传输量太大反而效率低。
2、fetch()或fetchall()有几个参数:
fetch_style参数:
分享 IT 技术和行业经验,请关注技术学派。
领取专属 10元无门槛券
私享最新 技术干货