PHP学习笔记_PDO使用学习

本文是关于PHP PDO的使用学习,介绍了PDO的基础概念、配置、连接数据库的方法,以及如何执行SQL语句,包括exec、query、预处理语句(prepare和execute)的使用。此外,还详细讲解了PDO获取结果集的fetch、fetchAll和fetchColumn方法。
摘要由CSDN通过智能技术生成

PHP PDO使用学习


基础概念

        PDO是PHP Date Object的简称,随PHP5.1发布,支持多种数据库(Firebird、freeTDS、Interbase、MySql等),使用时仅需使用PDO接口中的方法就可以对数据库进行操作,选择不同的数据库仅需修改PDO中的DSN(数据源名称)即可。
        PDO是一个“数据库访问抽象层”;作用是统一各种数据库的访问接口,与mysql函数可以相比,跨数据库能力更强;与ADODB相比,效率更高。

PDO配置

linux环境(使用mysql)
在configure命令中添加如下代码

--with-pdo-mysql=/path/to/mysql/installation

Windows环境(使用mysql)
在php.ini文件中添加

extension=php_pdo.dll
extension=php_mysql_pdo.dll

或者将这两句的注释去掉(该文件中的注释格式是#或者:)

PDO连接数据库

首先需要实例化一个PDO对象
PDO构造函数

__constructs(string $dsn[,string $username[,string $password[,array $driver_options]]])

$dsn:数据源名,包括主机名端口号和数据库名称
$username:连接数据库的用户名
$password:连接数据库的密码
$dirver_options:连接数据库选项(驱动选项数组){例如array(PDO:ATTR_PERSISTENT => true),这样数据库连接即为持久链接}
例(连接mysql数据库):

<?php
$dbms = 'mysql';
$host = 'localhost';
$dbName = 'test';
$user = 'root';
$password = '';
$dsn = "$dbms:host=$host;dbname=$dbName";

try
{
	$dbh = new PDO($dsn,$user,$password);		//初始化PDO对象
	echo "连接成功!";
	foreach ($dbh->query('SELECT * FORM FOO') as $row)
	{
        print_r($row);
	}
	$dbh = null;								//将连接返回的PDO对象置空,相当于将连接断开
}
?>

        DSN :Date Source Name(数据源名称) 提供连接数据库需要的信息。
        格式为三部分:PDO驱动名称(如mysql、sqlite等);冒号和驱动特定的语法。
例如:连接数据库mysql

$dsn="$mysql:host=localhost;port=3303;dbname=test"

        因为数据库服务器和PHP脚本不在一个服务器上,而数据库尽在特定端口上监听连接请求(mysql是3306),单数据库管理员可能会修改端口号,多以PHP脚本有可能会找不到数据库的端口,此时可以在DSN中包含端口号。


PDO执行Sql语句


exec方法
int PDO:exec(string statement);		//statement为待执行的Sql语句

返回执行后受影响的行数,通常用于insert、delete和update语句。

query方法
PDOStatement PDO::query(string statement);	//statement为待执行的Sql语句

返回PDOStatement对象。

预处理语句–prepare和execute

使用prepare预处理查询语句,之后使用execute执行

PDOStatment PDO::prepare(string statement[,array driver_options]);
bool PDOStatement::excute([array input_parameters]);

PDO中获取结果集


fetch方法
mixed PDOStatement ::fetch([int fetch_style[,int cursor_orientation[,int cursor_offset]]]);

fetch_style为控制结果集的返回方式

fetch_style值返回值形式
PDO::FETCH_ASSOC关联数组
PDO::FETCH_NUM数字索引数组
PDO::FETCH_BOTH两者数组形式都有(默认返回)
PDO::FETCH_OBJ对象形式
PDO::FETCH_BOUND数字索引数组
PDO::FETCH_LAZY以关联数组、数字索引数组、对象三种形式返回
cursor_orientation:PDOStatement对象的一个滚动游轮、可用于获取指定的一行
cursor_offset:游标的偏移量

使用方法如下:

<?php
$dsn = "mysql:host='localhost';port=3306;dbname='test'";
$user = "root";
$password = "";
try
{
    $pdo = new PDO($dsn,$user,$password)	//连接数据库,连接失败弹出异常
    $query = "select * from user_message";	//sql查询语句
    $result = $pdo->prepare($query);		//准备查询语句
    $result->excute();						//执行查询语句并返回结果集
    while($res = $result->fetch(PDO::FETCH_ASSOC))	//获取查询结果并输出
    	echo $res['id'].$res[...];
}catch(PDOException $e){
    die ("Error:".$e->getMessage()."<br>");
}
$pdo = NULL;								//释放连接

fetchAll方法
array PSOStatement::fetchAll([int fetch_style[,int column_index]]);

fetch_style:同fetch()方法中的fetch_style
column_index:字段的索引
返回一个包含结果集所有数据的二维数组,例如:$res[$i][‘id’]、$res[$i][…]等

fetchColumn方法
string PDOStatement::fetchColumn([int column_num]);

column_num:设置行中列的索引值,从0开始,若省略该参数,则从第一列开始取值。


返回值 :结果集中下一行中的指定列的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值