现在的位置: 首页 > 综合 > 正文

数据库抽象层pdo的使用

2014年02月12日 ⁄ 综合 ⁄ 共 4942字 ⁄ 字号 评论关闭

     亲们,您还在为不知道选用哪种数据库而犯愁吗?您还在为数据库间的移植问题而感到困惑吗?不要着急,接下来教你一个可以连接各种主流的数据库的扩展类库(PHP  Data  Object),

      pdo支持的数据库包括:mysql    oracle   mssql    postgreSQL等,它提供了一个各种数据库的访问接口,如此牛X的东东与大家一起来分享,走着:

    

      首先介绍一下支持PDO的驱动及相应的数据库列表:

          驱动名                           对应访问的数据库

       PDO_DBLIB                              FreeTDS  / Microsoft  SQL   Server   /  Sybase

       PDO_FIREBIRD                            Firebird   /   Interbase   6

       PDO_MYSQL                            MYSQL   3.x/4.x/5.x

       PDO_OCI                                      Oracle

       PDO_SQLite                                  SQLite 2.x  /3.x

       PDO_ODBC                                   ODBC   v3

       PDO_PGSQL                                 PostgreSQL

      1、在linux下如果想使用PDO时,要在安装php5.1以上版本的源代码包的环境.时,向configure命令中添加如下的标志:

            --with-pdo-mysql=/usr/local/mysql         其中“/usr/local/mysql”为mysql服务器的安装目录

            如果要开启其他各个特定pdo驱动程序的更多信息请参考执行:  configure  --help

 

       2、window下pdo的安装使用,注意php的版本都要在5.1以上

             所要做的步骤就是修改php.ini文件即可:

             1)、首先开启所有PDO驱动程序共享的扩展,必须的           

                            extension  =  php_pdo.dll

              2)、根据你要使用的数据库,并开启相应的扩展

                            MYSQL:         extension=php_pdo_mysql.dll

                            ODBC  :         extension=php_pdo_odbc.dll              

                            ...........................如果没有请查询你要使用的扩展库,并保证在php的安装目录下的ext文件中有该扩展文件...............................................

               3)、打印phpinfo();   如果看到PDO扩展则成功,继续走着

          3、创建PDO对象

               PDO构造方法:  __construct(string  dsn  [,string   username  [, string  password]   [,  array  driver_options]]);

                    dsn:    第一个必选的参数是数据源名(DSN),用来定义一个确定的数据库和必须用到驱动程序,以下介绍几个数据库的DSN

                               1)、Oracle:    oci:dbname=//localhost:1521/mydb

                               2)、mysql:     mysql:dbname=testdb;host:localhost

                    username :    连接数据库的用户名

                    password:      连接数据库的密码

                    driver_options:    该参数为一个数组指定连接所需的所有的额外的选项,传递附加的调优参数到PDO或底层驱动程序。

             

            4、以多种方式调用构造方法

                 1、将参数嵌入到构造函数

                           <?php

                                    try{

                                                  $dbh = new PDO("OCI:dbname=accounts;charset=UTF-8;host=127.0.0.1", "username",  "password");

                                           }catch(PDOException  $e){

                                                  echo "连接数据库失败:".$e->getMessage();

                                      }

                            ?>

                  2、将参数存放在文件中

                              <?php

                                      try{

                                                  $dbh = new PDO("uri:file:///usr/local/dbconnect", "username",  "password");

                                           }catch(PDOException  $e){

                                                   echo "连接数据库失败:".$e->getMessage();

                                      }

                              ?>

                  3、引用php.ini文件

                   <php配置文件中>

                        [PDO]

                      pdo.dsn.oraclepdo="OCI:dbname=//localhost:152/mydb;charset=UTF-8";

                  <php配置文件中>

                               <?php

                                      try{

                                                  $dbh = new PDO("oraclepdo", "username",  "password");

                                           }catch(PDOException  $e){

                                                   echo "连接数据库失败:".$e->getMessage();

                                      }

                              ?>

                    4、PDO与连接有关的选项

                              PDO::ATTR_AUTOCOMMIT                      确定PDO是否关闭自动提交功能,设置false值时关闭

                              PDO::ATTR_CASE                                   强制PDO获取的表字段字符的大小写转换,或原样使用列信息

                              ---------------------------------------还有很多就不依依举例---------------------------------------------------

                     5、PDO对象中的成员方法

                          getAttribute()

                          setAttribute()

                          errorCode()

                          errorInfo

                          exec()                  处理一条sql语句,并且返回所影响的条目数

                          query()                 处理一条sql语句,并返回PDOStatement 对象

                          quote()                 为某个sql中的字符串添加引号

                           LastInsertId()

                           prepare()              负责准备要执行sql语句

                           getAvailiableDrivers()       获取有效的PDO驱动器名称

                           beginTransaction()           开始一个事务,标明回滚起始点

                           commit()                         提交一个事务,并且执行sql

                            rollback()                        

                     

                       6、调整PDO的行为属性:这里举获取属性与设置属性另个例子,和js一样很简单的

                                    $pdodb->getAttribute("PDO::ATTR_AUTOCOMMIT");     //判断是否设置了自动提交功能,返回值true ,false 

                                    $pdodb->setAttribute("PDO::ATTR_AUTOCOMMIT",true);     //手动开启自动提交

就先到这里,明天继续。。。。。。。。。。。。。。。。。。。闪

                            

抱歉!评论已关闭.