PDO数据库抽象层简介

PDO概述

PDO是PHP数据对象的简称,PHP数据对象(PDO)扩展为PHP访问数据库定义了一个轻量级的一致接口。
PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。有了PDO,就不必再使用mysql_*函数,oci_*函数,或者mssql_*函数,也不必再为他们封装数据库操作类,只需要使用PDO接口中的方法就可以对数据库进行操作。在选择不同的数据库时,只需修改PDO中的DSN(数据源名称)。

我们需要知道,使用了PDO后,只需要使用PDO接口中的方法就可以对数据库进行操作。在更换[toc]不同的数据库时,比如一个网站原来使用的mysql数据库,现在要改为Oracle数据库,只需修改PDO中的DSN,使得兼容性和可移植性大大提升。

安装PDO

PDO是与PHP5.1一起发行的,默认包含在PHP5.1中,PDO需要PHP5核心面向对象特性,所以在PHP5.1之前无法使用PDO。
PDO的安装具体可以看:菜鸟教程
一般在PHP集成环境,如phpstudy软件中,都默认安装了PDO,无需再安装。

PDO连接数据库

PDO构造函数:
在PDO中,要建立与数据库的连接需要实例化PDO的构造函数。

<?php
	$host = '127.0.0.1';  //主机名称
	$db_username = 'root';  //数据库用户名
	$db_pwd = 'password'; //数据库密码
	$db_name = 'dbname';  //数据库名
	$dbms = 'mysql';  //数据库类型,这里是mysql
	$dsn = "$dbms:host=$host;dbname=$db_name";
    //开始连接数据库
    try{  //捕获异常
        $conn = new PDO($dsn, $db_username, $db_pwd); //实例化对象
	}
	catch(Exception $e){
        die("连接失败!");
    }
?>

PDO中执行SQL语句

  • exec方法
    int PDO::exec(string statement)
    其中statement为要执行的SQL语句。该方法返回查询时受到影响的行数,通常用于插入、删除、更新语句中。
  • query方法
    用于返回执行查询结果后的影响集。
    PDOStatemnet PDO::query(string statemnet)
  • 预处理语句——prepare和execute
    预处理语句的好处之一就是可以在一定程度上防止SQL注入。
    下面是一个例子:
	$conn = new PDO($dsn, $db_username, $db_pwd);
	echo '数据库连接成功!';
	//数据库查询语句
	$query_select = "select id from user where username='$username' and password='$password'";
	$check_query = $conn->prepare($query_select); //预处理查询语句
	$check_query->execute(); //执行查询语句
	$arr = $check_query->fetch(PDO::FETCH_ASSOC);

从PDO中获得结果集

  • fetch方法
    $arr = $check_query->fetch(PDO::FETCH_ASSOC);
    其中fetch方法里的模式可以选则:
    PDO::FETCH_ASSOC 关联数组。
    PDO::FETCH_NUM 数字索引数组。
    PDO::FETCH_BOTH 默认,两者都有。

  • fetchAll方法 获取结果集中所有行。

  • fetchColumn方法 获取结果集中下一行指定列的值。

转载至本人小网站:我的博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值