PHP数据库抽象层--PDO

本文介绍了PHP的PDO扩展,它提供了数据库抽象层,方便在不同数据库间迁移。内容包括PDO的安装、连接与断开数据库、执行查询(如INSERT、SELECT)、结果处理(如fetchColumn、fetch和fetchAll)以及错误处理。特别强调了PDO::query()用于SELECT操作,而PDO::exec()适用于INSERT、UPDATE、DELETE。
摘要由CSDN通过智能技术生成

1.描述:
             使用数据库抽象类,意义在于从一个数据库向另一个数据库迁移,不用更改太多的程序代码


2.安装:
            1.)windows下安装,PHP.ini找到extension扩展
                PDO的扩展:
                extension=php_pdo.dll
                extension=php_pdo_mysql.dll
                extension=php_pdo_pgsql.dll
                extension=php_pdo_sqlite.dll
                extension=php_pdo_mssql.dll
                extension=php_pdo_odbc.dll
                extension=php_pdo_firebird.dll
                ;extension=php_pdo_oci8.dll
                各种PDO驱动,oci8是oracle数据库
            2.)打开phpinfo.php看到如下信息
                PDO
                PDO support enabled
                PDO drivers mysql, pgsql, sqlite, mssql, odbc, firebird


3.应用:
           1.)连接数据库 
               //sqlserver数据源 $dsn = "dblib:host=192.168.5.5;port=1432;dbname=act_db";
               //mysql数据源
              $dsn = "mysql:host=127.0.0.1;dbname=test";
              $db = new PDO($dsn,'root','');
              //返回一个影响记录的结果
              $count = $db->exec("INSERT INTO `test` VALUES (id,'phpbobo',13500000000)");
              echo $count;  
              //结束对象资源:
              $db = null;
           2.)查询数据库 (数字索引和关联索引(字段关联))
              $rs = $db->query("SELECT * FROM `test`");
              $result_arr = $rs->fetchAll();
           3.)查询数据库 (关联索引查询)
              $rs = $db->query("SELECT * FROM `test`");
              //关联索引形式
              $rs->setFetchMode(PDO::FETCH_ASSOC);
              $result_arr = $rs->fetchAll();
           4.)查询数据库 (一个字段)
              $rs = $db->query("SELECT count(id) AS count FROM `test`");
              $result = $rs->fetchColumn();


4.总结:
       1.)查询主要是 PDO::query()、PDO::exec()
             PDO::query()主要用与SELECT操作
             PDO::exec() 主要用于INSERT、UPDATE、DELETE
       2.)获取结果集主要是 PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchAll()
             PDOStatement::fetchColumn()获取结果一个字段
             PDOStatement::fetch() 获取一条记录
             PDOStatement::fetchAll() 获取N条记录 可以通过PDOStatement::setFetchMode来设置需要结果集合的类型


5.错误处理:
         //连接错误
         try{
              $db = new PDO('mysql:host=127.0.0.1;dbname=test','root','');
              return $db;
          }catch(PDOException $e){
             die($e->getMessage());
          }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值