PHP之PDO学习

◇◆丶佛笑我妖孽 提交于 2020-03-23 03:16:20

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

1、连接数据库

代码
try{
   
$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、获取数据

$rs = $db->query("SELECT * FROM foo");
while($row = $rs->fetch()){
   print_r($row);
}

3、很方便的放到数组里面fetchAll

<?php
$rs = $db->query("SELECT * FROM foo");
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>

4、数字 关联索引浪费setAttribute(字段大小写)setFetchMode(数组模式)

代码
<?php
$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

<?php
$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操作无效。

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!