开启辅助访问
帐号登录 |立即注册

PDO方式连接数据库

 
一、什么是PDO?
PDO是PHP Date Object(PHP数据对象)的简称,它是与PHP 5.1版本一起发行的。
目前支持的数据库包括Firebird、FreeTDS、Interbase、MySQL、MS SQL Server、ODBC、Oracle、Postgre SQL、SQLite和Sybase。
有了PDO,您不必再使用mysql_*函数、oci_*函数或者mssql_*函数,也不必再为它们封装数据库操作类,只需要使用PDO接口中的方法就可以对数据库进行操作。在选择不同的数据库时,只需修改PDO的DSN(数据源名称)。

二、PDO的作用与特点
            1)编码的一致性
               由于PHP可用的各种数据库扩展是由不同发行者编写的,所以尽管所有的扩展都提供了基本相同的特性,却不 满 足编码的一致性。PDO消除了这种不一致,提供了可用于各种数据库的单一接口;
            2)灵活性
                因为PDO在运行时加载必须的数据库驱动程序,所以不需要在每次使用不同数据库时重新配置和重新编译PHP。例如,如果数据库需要从SQL切换到MySQL,只需要加载PDO_MYSQL驱动程序就可以了。
            3)面向对象特性
                PDO利用PHP5的面向对象特性,可以获得更强大、更高效的数据库通信。
            4)高性能
                PDO是用C编写的,编译为PHP,与用PHP编写的其他解决方案相比,虽然其他都相同,但提供了更高的性能。

三、PDO的配置与启动
           1)修改php.ini,添加MySQL的PDO扩展
           打开PHP配置文件php.ini,找到php_pdo_mysql.dll这行去掉钱买你的分号
           2)扩展目录中要有相应的扩展文件
            打开PHP配置文件php.ini,找到extension_dir,这个就是我们扩展存在的目录,首先去掉前面的分号,然后修改扩展目录,我的扩展目录是在"E:/Web/php/ext",就改成extension_dir="E:/Web/php/ext"。
          3)PDO连接不同的数据,要有不同的数据库驱动文件,即我们所加入配置文件的扩展
           4)重新启动服务器,IIS/Apache,我的是apache,使配置生效


四、通过PDO连接数据库
4.1 PDO的构造函数
在PDO中,要建立与数据库的连接需要实例化PDO的构造函数,PDO构造函数的语法如下:
__construct(string $dsn[,string $username[,string $password[,array $driver_options]]])
dsn数据源名,包括主机名、端口号和数据库名称。
语法格式:$dsn =“数据库类型:dbname=数据库名;host=数据库的域名”;
username:连接数据库的用户名。password:连接数据库的密码。
driver_options:连接数据库的其他选项。
例子(1)连接数据库、数据库的用户名、数据库的密码
            $dsn = "mysql:dbname=test;host=127.0.0.1";
            $user = "root";
            $password="123456";
        (2)声明对象
            $object = new PDO($dsn,$user,$password);


实例:
$dbms='mysql';//数据库类型
$host='127.0.0.1';//数据库主机名 也可以是127.0.0.1
$dbName='db_database17';//使用的数据库名称
$user='root';//用户名
$pass='123456';//对应的密码
$dsn="$dbms:dbname=$dbName;host=$host";
$conn= new PDO($dsn,$user,$pass);//初始化一个PDO对象,就是创建了连接数据库的对象 $conn

构造函数用于,构造PDO对象,有了这个对象,我们我就可以使用里边的方法来访问数据库。

4.1.1 exec()方法 返回执行后受影响的行数
exec()方法返回执行后受影响的行数,:
通常用于 INSERT、DELETE和UPDATE语句中。
实例:
try{
    $conn= new PDO($dsn,$user,$pass);//初始化一个PDO对象,就是创建了连接数据库的对象 $conn
    $query="insert into tb_pdo_mysql(pdo_type,database_name,dates)values('".$_POST['pdo']."','".$_POST['databases']."','".$_POST['dates']."')";
    $result=$conn->exec($query);
    echo "数据添加成功,受影响的行数为:".$result;                           
} catch (PDOException $e){
    die ("Error!:".$e->getMessage().'<br/>');

4.1.2 query()方法 用于返回执行查询后的结果集
query()方法用于返回执行查询后的结果集:
实例:
try{
    $pdo = new PDO($dsn,$user,$pass);
    $sql = 'select * from tb_pdo_mysql';
    $result = $pdo->query($sql);
    foreach ($result as $row) {
        echo "<tr align='center'>"."<td>".$row['id']."</td>";
        echo "<td>".$row['pdo_type']."</td>";
        echo "<td>".$row['database_name']."</td>";
        echo "<td>".$row['dates']."</td>"."</tr>";
    }
} catch (PDOException $e){
    die ("Error!:".$e->getMessage().'<br/>');
}

五、PDO常用方法及其应用

PDO::query()
主要是用于有记录结果返回的操作,特别是SELECT操作

PDO::exec()
主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作

PDO::prepare()
主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大(防止sql注入就靠这个)

PDO::lastInsertId()
返回上次插入操作,主键列类型是自增的最后的自增ID

PDOStatement::fetch()
是用来获取一条记录

PDOStatement::fetchAll()
是获取所有记录集到一个集合

PDOStatement::fetchColumn()
是获取结果指定第一条记录的某个字段,缺省是第一个字段

PDOStatement::rowCount()
主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。
以上就是本文的全部内容,感谢大家支持JScript之家——编程学习者社区!








回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。