PHP连接数据库新方法phpPDO

随着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 技术和行业经验,请关注技术学派。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180530G1EY1100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券