OOP-PDO学习笔记

主页 > 学习 > php >

mate 1170
OOP-PDO
标题
副标题
解释
备注
什么是PDO?
 
PDO[PHP Data      Objects],PHP数据对象,PDO是能够访问各种数据库
 
引擎的统一接口,而且提供SQL语句的预处理功能,可以提高访问效率且能有效防止SQL注入攻击。
 
2.安装
 
A.编辑PHP的配置文件 -- php.ini
 
B.启用extension=php_pdo_mysql.dll选项
 
C.编辑extension_dir选项,指定扩展文件的目录
 
D.保存设置后,重新启动Apache
 
二、PDO类
 
 
 
1.创建PDO对象
 
1.创建PDO对象
 
$object = new PDO(string      $dsn[,string $username[,string $password]])
 
2.DSN
 
2.DSN
 
DSN[DataSource      Name],数据源名称 
 
MySQL DSN写法:
 
mysql:host=主机名称;dbname=数据库名称;port=端口;charset=编码方式
 
3.方法
exec()
exec()
 
描述:执行SQL查询,并且返回被影响到的行数
 
语法:int PDO::exec(string      $sql)
 
 
lastInsertId()
lastInsertId()
 
描述:返回最后插入记录的ID号
 
语法:string PDO::lastInsertId([string      $name=NULL])
 
 
query()
query()
 
描述:执行SQL查询,并且将查询结果集作为PDOStatement对象返回
 
语法:PDOStatement PDO::query(string      $sql)
 
 
prepare()
prepare()
 
描述:事先准备SQL语句的预处理,并且返回PDOStatment对象
 
语法:PDOStatement PDO::prepare(string      $sql)
 
说明:
 
A.SQL语句中不确定的信息,如字段值,条件等使用占位符表示
 
B.SQL语句中的占位符无需用引号处理
prepare[peipeier]:准备
4.占位符
 
 A.问号(?)
 
 B.命名占位符(:名称)
 
5.SQL的预处理
SQL语句的执行过程:
SQL语句的执行过程:
 
A.数据库引擎将对SQL语句进行语法分析;
 
B.进行SQL语句的编译过程;
 
C.执行编译的代码;
 
D.将执行的结果返回给用户
 
 
预处理的基本思想是:
预处理的基本思想是:
 
在第一次执行SQL查询时要经历语法分析、编译等过程,在编译成功后,
 
会将编译的结果存储起来,以后再次执行时,只要直接执行以前的编译结果
 
就可以了,这样可以有效减少数据库服务器的压力。
 
三、PDOStatement类
rowCount()
rowCount()
 
描述:返回由上一条SQL查询语句所影响到行数(提示:SQL可以为任意的SQL语句)
 
语法:int      PDOStatement::rowCount(void)
 
 
fetchAll()
fetchAll()
 
描述:抽取结果集中的全部记录作为数组返回
 
语法:array PDOStatement::fetchAll([int      $fetch_style=PDO::FETCH_BOTH])
 
说明:
 
A.$fetch_style参数用于指定数组的类型,其值可以为:
 
       PDO::FETCH_ASSOC,其值为2,代表返回关联数组
 
       PDO::FETCH_NUM,其值为3,代表返回索引数组
 
       PDO::FETCH_BOTH,其值为4,代表同时返回关联数组和索引数组(默认)
 
       PDO::FETCH_OBJ,其值为5,代表返回对象(默认stdClass类型)
 
 
setFetchMode()
setFetchMode()
 
描述:设置结果集的匹配类型
 
语法:bool      PDOStatement::setFetchMode(int $fetch_mode)
 
 
fetch()
fetch()
 
描述:抽取结果集的一行返回,如果没有更多的行,则返回FALSE
 
语法:mixed PDO::fetch([int      $fetch_style=PDO::FETCH_BOTH])
 
 
fetchObject()
fetchObject()
 
描述:抽取结果集的一行作用对象返回,如果没有更多的行,则返回FALSE
 
语法:object PDO::fetchObject([string      $class_name])
 
 
execute()
execute()
 
描述:执行预处理的SQL语句
 
语法:bool PDOStatement::execute([array      $param])
 
说明:
 
A.如果预处理SQL语句不确定信息使用问号占位符表示,则$param参数需要使用索引数组呈现
 
B.如果预处理SQL语句不确定信息使用问号命名占位符表示,则$param参数需要使用关联数组呈现
execute[xkoute]:执行
 
bindValue()
bindValue()
 
描述:为预处理SQL语句的占位符参数绑定值
 
语法:bool      PDOStatement::bindValue(mixed $parameter,mixed $value[,int      $data_type=PDO::PARAM_STR)])
 
说明:
 
A.如果通过bindValue()方法将SQL语句的占位符参数绑定了值,那么在执行时(execute()方法)时,就可以省略$param参数;
 
B.问号占位符从1开始编号;命名占位符参数的名称就是命名占位符;
 
C.$data_type参数用于指定数据类型,其值可能为:
 
       PDO::PARAM_NULL,其值为0,代表为空值
 
       PDO::PARAM_INT,其值为1,代表整型
 
       PDO::PARAM_STR,其值为2,代表字符型(默认)
 
       PDO::PARAM_BOOL,其值5,代表布尔型
 
 
bindParam()
bindParam()
 
描述:为预处理SQL语句的占位符参数绑定到变量
 
语法:bool      PDOStatement::bindParam(mixed $parameter,mixed &$var[,int      $data_type=PDO::PARAM_STR)])
 
说明:
 
A.问号占位符从1开始编号;命名占位符参数的名称就是命名占位符;
 
随机新闻
收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!