安装配置网上搜了。PHP5.1.4以后都带了这个扩展 在php.ini 把“;”号去掉就行
1、连接数据库

$dbh= new PDO('mysql:host=localhost;dbname=test', 'root', '123');//原始化一个PDO对象,就是建立了数据库连接对象$dbh
echo"连接成功<br/>";
$dbh=null;
}catch(PDOException$e){
die("Error!: ".$e->getMessage()."<br/>");
}
2、获取数据
while($row = $rs->fetch()){
print_r($row);
}
3、很方便的放到数组里面fetchAll
$rs = $db->query("SELECT * FROM foo");
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>
4、数字 关联索引浪费setAttribute(字段大小写)setFetchMode(数组模式)

$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
/*
PDO::CASE_LOWER -- 强制列名是小写
PDO::CASE_NATURAL -- 列名按照原始的方式
PDO::CASE_UPPER -- 强制列名为大写
*/
$rs = $db->query("SELECT * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
/*
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()
*/
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>
5、获取单一字段fetchColumn
$rs = $db->query("SELECT COUNT(*) FROM foo");
$col = $rs->fetchColumn();
echo $col;
?>
6、处理方式
PDO::query()、PDO::exec()、PDO::prepare()
PDO::query() 有数据集返回的用 比如Select
PDO::exec() INSERT、UPDATE、DELETE的时候没有返回的
PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。
获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。
PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段。
PDOStatement::fetch() 是用来获取一条记录
PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。
另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。
PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。
PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。
来源:https://www.cnblogs.com/jason-zy/archive/2010/01/13/1646262.html