数据库抽象层 PDO

因为这段时间工作比较忙  所以很长时间没有更新技术博客了。 在这段时间学习到了很多以前没有接触过的东西。下面就来介绍一下数据库抽象层PDO的使用:

PDO(PHP Data Objects)是一个轻量级的PHP扩展,提供了一个数据访问抽象层。还要就是PDO只能在PHP5.0以上版本使用。

下面来介绍一下PDO常用的预定义常量:

PDO::PARAM_BOOL (integer)    表示布尔数据类型

PDO::PARAM_NULL (integer)    表示数据类型为NULL的SQL

PDO::PARAM_INT (integer)      表示为integer数据类型的SQL

PDO::PARAM_STR (integer)      表示为char varchar 或者其他字符串的数据类型的SQL

PDO::PARAM_LOB (integer)      表示对象数据类型的SQL

PDO::FETCH_LAZY (integer)    指定的获取方式,应当返回结果集的每一行作为一个对象的变量名,对应于它的字段名

PDO::FETCH_ORI_NEXT (integer) 取结果集的下一行

PDO::FETCH_ORI_PRIOR (integer取结果集的前面的行

PDO::FETCH_ORI_FIRST (integer取结果集的第一行

PDO::FETCH_ORI_LAST (integer) 取结果集的最后一行

PDO::ATTR_PERSISTENT (integer)   创建一个持久连接,而不是新创建一个连接

PDO的基本用法:

使用PDO与数据库连接(这里只使用MySQL):

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

下面的代码是对MySQL连接错误时的处理:


  
1 <? php
2 try {
3 $dbh = new PDO( ' mysql:host=localhost;dbname=test ' , $user , $pass );
4 foreach ( $dbh -> query( ' SELECT * from FOO ' ) as $row ) {
5 print_r ( $row );
6 }
7 $dbh = null ;
8 } catch (PDOException $e ) {
9 print " Error!: " . $e -> getMessage() . " <br/> " ;
10 die ();
11 }
12 ?>

下面是两个重复使用插入语句的例子:


  
<? php
$stmt = $dbh -> prepare( " INSERT INTO REGISTRY (name, value) VALUES (:name, :value) " );
$stmt -> bindParam( ' :name ' , $name );
$stmt -> bindParam( ' :value ' , $value );

// insert one row
$name = ' one ' ;
$value = 1 ;
$stmt -> execute();

// insert another row with different values
$name = ' two ' ;
$value = 2 ;
$stmt -> execute();
?>


  
<? php
$stmt = $dbh -> prepare( " INSERT INTO REGISTRY (name, value) VALUES (?, ?) " );
$stmt -> bindParam( 1 , $name );
$stmt -> bindParam( 2 , $value );

// insert one row
$name = ' one ' ;
$value = 1 ;
$stmt -> execute();

// insert another row with different values
$name = ' two ' ;
$value = 2 ;
$stmt -> execute();
?>

对数据库进行查询操作:


  
<? php
$stmt = $dbh -> prepare( " SELECT * FROM REGISTRY where name = ? " );
if ( $stmt -> execute( array ( $_GET [ ' name ' ]))) {
while ( $row = $stmt -> fetch()) {
print_r ( $row );
}
}
?>

转载于:https://www.cnblogs.com/confusing/archive/2011/05/04/2037109.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值