PDO: php data object

PDO: php data object
数据库访问抽象层


基于驱动:
1、安装扩展 pdo.dll
2、安装驱动 pdo_mysql.dll


linux 编译时参数:--with-pdo=mysql=/usr/local/mysql


三个类:
PDO类, 数据库连接有关(连接、执行sql)
PDOStatement 处理结果集
PDOException 异常处理类
一些常量


相比mysqli方法少,常量多
1.什么是PDO( PHP Database Object)  //数据库抽象层  
    项目换数据库的时候,所有相关数据库的代码 和 函数库都需要修改。而使用pdo则会非常省事!!  
        PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据  
  
2.PDO数据库抽象层 原理  
  
3.PDO对象初始化  
    PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )  
    data source name(数据源) 包括 主机、端口、库名、驱动名


    创建一个表示连接到请求数据库的数据库连接 PDO 实例。   
  
    // 使用mysqli  实例化对象的时候用 $mysqli = new mysqli("localhost", "root", "user", "boolshop");  
    说那个PDO  
    <?php   
        //当然也可以把这些信息放到文件中  
        $dsn = 'mysql:dbname=test; host=127.0.0.1';  
        $user = 'root';  
        $password = '123456';  
  
        try{  
            //第一种方法 直接使用  
            $pdo = new PDO($dsn, $user, $password);  
              
            //第二种方法 引入外部配置文件  
            //可以把 mysql:dbname=test; host=127.0.0.1 写进下面的配置文件中,然后引入进来  
            // $pdo = new PDO("uri:mysqlPdo.ini", $user, $password);  
              
            //第三种方法 在php的配置文件中写进mysql:dbname=test; host=127.0.0.1 不过我感觉这样做有点冒险啊  
            // [PDO]  
            // pdo.dsn.mysqlpdo = "mysql:dbname=test; host=127.0.0.1"  
            //  然后$pdo = new PDO('mysqlpdo', $user, $password);  
  
        }catch(PDOException $e){  
            die("连接失败".$e->getMessage());  
        }  
        var_dump($pdo);  
  
4.pdo对象应用  
    1.query($sql)  //用于执行查询sql语句,返回PDOStatement对象  
    2.exec($sql)    //用于执行增删改查操作,返回影响行数  
    3.setAttribute();   //设置一个数据库连接对象属性  
    4.fetchAll();       //解析数据  
  
        1.首先连接数据库  
            .....  
        2.然后查询数据库 query 返回的是预处理对象  
            $sql = "select * from a";  
            $stmt = $pdo->query($sql);  
                //括号内加上 PDO::FETCH_ASSOC 表示返回的是关联数组,而不是索引数组了  
            $list = $stmt->fetchAll(PDO::FETCH_ASSOC);  
        3.解析数据  
            foreach ($list as $key => $val) {  
                echo $val['id']."====".$val['num']."<br />";  
            }  
        4.释放资源  
            $stmt = null;  
            $pdo = null;  
          
                有一个快捷的方式 解析全部数据  
                    $sql = "select id, num from a ";  
                    foreach ($pod->query($sql) as $val) {  
                        echo $val['id']."=====".$val['num']."<br />";  
                    }  
                    一步就可以解决了,这里用到了php的底层原理  
  
        5.插入语句   
            //插入  
            $sql = "insert into a values('m', 888)";  
            //删除  
            $sql = "delete from a where id='m'";  
            //修改  
            $sql = "update a set num='999' where id='b'";  
            //exec() 返回受影响的行数  
            $res = $pdo->exec($sql);  
            if ($res) {  
                echo "OK";  
            }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值