pdo介绍与学习

一.安装

1.win下pdo的安装

  在win下安装比较简单,只需要在php.ini中开启extension=php_pdo.dll和相应的驱动如extension=php_pdo_mysql.dll重启apache就行了。

2.在linux环境下安装

  在安装php编译阶段加上--with-pdo-mysql=mysql的安装路径

二.详解pdo

从php手册中可以了解到pdo一共有三个类PDO类,PDOStratement类,PDOException类 

1.PDO类

首先需要先实例化一个PDO对象

$pdo = new PDO('mysql:host=$host;dbname=$dbname','$username','$password');

$host      服务器地址

$dbname    数据库名称

$username  数据库用户名

$password  数据库密码

PDO对象的方法

  1)执行sql语句的方法:

        $pdo->exec();//执行有影响行数的语句,update,delete,insert等写操作,返回所影响的行数。

        $pdo->query();//执行有结果集的语句,select等读操作,返回一个PDOStatement对象。

        $pdo->prepare();//执行所有语句,与PDOStatement对象一起使用,返回一个PDOStatement对象。

    2)获取最后一次数据的自增ID

        $pdo->lastInsertId();

    3)事务,执行事物要保证数据库和PDO的自动提交处于关闭状态

        $pdo->beginTrasaction();//开启事务

        $pdo->commit();//提交事务

        $pdo->callback;//事务回滚

    4)PDO属性设置,查看

        $pdo->setAttribute();//设置PDO属性

        $pdo->getAttibute();//获取/显示PDO属性

        $pdo->getAvailableDrivers();//获取/显示PDO驱动

    5)错误提示,错误信息

        $pdo->errorCode();//显示错误的代码,数字

        $pdo->errorInfo();//显示错误信息,数组

        PDO的错误级别分三种,可以在创建pdo对象是定义

        默认 ERRMODE_SILENT 代号0 //错误发生时不进行任何提示

        警告 ERRMODE_WARNING 代号 1 //警告信息

        异常 ERRMODE_EXCEPTION 代号 2 //异常信息

 2.PDOStatement对象,预处理对象

常规的mysql数据处理是每执行一条语句与服务器进行一次连接,而pdo是有预处理先在服务器创建一个预处理状态,然后把每一条语句作为预处理的参数来用,节省了服务器的开支。

    1)准备一条语句

        $stmt = $pdo->prepare(insert into test (title,content,date) value(':title',':content',':date'));

        $stmt = $pdo->prepare(insert into test (title,content,date) value(?,?,?));

        //PDOStatement是有PDO对象而来,prepare参数的写法有两种形式,第一种事占位符?相当于索引 数组 有一定的顺序性;第二种是名称参数 相当于关联数组 无顺序性

    2)绑定参数

        $stmt->bindParam(':title',$title);

        $stmt->bindParam(':content',$content);

        $stmt->bindParam(':date',$date);

        或

        $stmt->bindParam(1,$title);

        $stmt->bindParam(2,$content);

        $stmt->bindParam(3,$date);

 

        也可以写成

        $stmt->bindParam(array(':title'=>$title,':content'=>$content,':date'=>$date));

        $stmt->bindParam(array($title,$content,$date));

 

    3)执行语句,在执行之前也可以不绑定参数,而在执行时进行绑定如:$stmt->execute(array(':title'=>$title,':content'=>$content,':date'=>$date));

        $stmt->execute();

 

    4)获取结果集

        $stmt->fetch();//获取一条记录混合了关联数组和索引数组,可以给定参数来规定是关联或是索引如$stmt->fetch(PDO::FETCH_ASSOC)也可以用$stmt->setFetchMode()来统一定义

        $stmt->fetchAll();//获取所有记录

        $stmt->fetchColumn();//获取字段

        $stmt->rowCount();//获取总行数

        $stmt->columnCount();//总字段数


例子:

$dsn="mysql:host=localhost;dbname=films";

    $pdo=new PDO($dsn,'root','');

    $pdo->exec('set names utf8');

    $sql="select * from images";

    $stmt=$pdo->prepare($sql);
    
    $stmt->execute();

    if($stmt->rowCount()){

            $r=$stmt->fetchall(PDO::FETCH_ASSOC);

            foreach ($r as $v) {

                echo $v['path']."<br/>";

            }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值