使用PDO访问数据库

来源:互联网 发布:dnf上号无限数据异常 编辑:程序博客网 时间:2024/06/05 13:24
不错
原文地址:使用PDO访问数据库作者:PHPer_Eric
1、什么是PDO?
PDO是PHP DataObjects的简称,是一种数据库访问抽象层。但是这样定义pdo反而让人觉得很难理解,很抽象,它究竟是什么东西呢?从根本上讲,pdo是用于多种数据库的一致接口。你不必再使用mysql_*函数,sqlite_*函数等,也不必再为他们编写与您的数据库一起工作的封装类。相反,只需要使用pdo接口中的相同方法就可以与所有三种函数协同工作。简单的说,pdo为我们提供了许多与各种数据库相关的操作接口,我们不再需要自己去编写麻烦的方法去链接,选择数据库等操作,只需要实例化pdo的对象,然后调用它的方法就可以实现所有想实现的数据库操作。

2、如何利用pdo访问数据库?
访问数据库之前首先需要链接到数据库,以mysql为例,使用pdo链接数据库的方法如下:
<?php
$host = 'mysql:host=localhost;dbname=pdotest;';
$username = 'root';
$password = 's081167';
try{
$pdoobj = new PDO($host,$username,$password);
}
catch(PDOException $e){
echo 'connection failed!'.$e->getMessage();
}
?>


3、如何获得受影响的行数?
在做进一步动作之前就能够计算出一个查询返回或影响的行数通常很有用,可以用sql的聚合函数count()来返回select查询结果所得的行数,代码如下:
<?php
$sql = "select count(id) from `testpdo` where`name`='$name'";
$pdoobj->prepare($sql);
$resultnum = $pdoobj->execute();
?>
这样就可以得到查询结果的条数,在某些时候需要统计数目,count()函数就显示出他的威力了。通常情况下count函数都是和distinct搭配使用的,因为多数情况下统计数目都是需要去掉重复的,所以经常要和distinct搭配使用。
例如:
<?php
$sql = "select count(*) from `test` distinct by `name`";
$pdoobj->prepare($sql);
$resultNum = $pdoobj->execute();
?>
另外,还可以用pdo的函数rowCount()方法返回受影响的行数。
例如:
<?php
$sql = "delet from `test` where `name`='$name' ";
$pdoobj->prepare($sql);
$resultNum = $pdoobj->execute();
?>
也就是说在调用了pdo的execute()函数之后,可以调用pdo的rowCount()函数来返回受影响的行数。

POD执行sql语句的方法是采用prepare()和execute()两个函数。