0

0

001 - PDO 用法详细解析

不言

不言

发布时间:2018-04-08 14:35:26

|

2179人浏览过

|

来源于php中文网

原创

本篇文章介绍的内容是pdo用法详细解析,现在分享给大家。有需要的朋友可以参考一下

《PHP技术内幕》中文版
《PHP技术内幕》中文版

本书详细说明了PHP的使用方法,内容涉及PHP应用的各个方面,并提供了大量的代码实例,使读者能够快速而容易地学会PHP。每一章都分为两部分,前一部分“深入分析”详细说明相关的技术信息,

下载
《PDO》
41、作用 :能够解决用户在需要使用不同的数据库的时候进行来回的切换,PDO能够自动的进行数据库的切换。
42、使用PDO	
    a)Php.ini文件找开启PDO扩展
43、使用PDO操作数据库基本步骤	
    a)连接认证		
        i.$pdo = new PDO(“mysql:host=localhost;port=3306;dbname=project”,”root”,”root”);			
            ii.dbname 是进入的数据库	
    b)组织SQL语句		
        i.$sql = “show tables”;	
    c)发送SQL语句,接收执行结果		
        i.$stmt = $pdo->query( $sql );	
    d)从结果集中获取数据		
        i.$stmt->fetch();
44、PDO常用函数	
    a)stdClass		标准类 空类	
    b)PDO:		
        i.exec( $sql );				执行SQL语句,返回受影响的行数		(用于 增删改)		
        ii.$stmt = query( $sql );		执行SQL语句,返回PDOStatement对象	(用于 查)	
    c)PDOStatement(结果集)		
        i.$stmt->fetch( );			返回一个关联数组+索引数组的集合			
            1.参1		PDO::FETCH_ASSOC		只返回关联数组			
            2.参2		PDO::FETCH_NUM			只返回索引数组		
        ii.$stmt->fetchAll()			获取结果集所有内容(参数同fetch())		
        iii.返回一个对象Object			
            1.class Persion{		}			
            2.$stmt->fetchObject( Persion)		
        iv.bindColumn 和 fetch	绑定一列到一个变量			
            1.$stmt->bindColumn(‘s_name’,$name);			
            2.$stmt->bindColumn( 3 ,$number);    //注意:索引从1开始			
            3.$stmt->fetch( );			
            4.echo $name,$number	
    d)PDO预处理		
        i.:s_name  这些 可以全用 ? 号代替(绑定数据时 就用索引值);		
        ii.使用数组指定预处理变量			
            1.步骤:				
                a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”;	//sql				
                b)$stmt = $pdo->prepare( $sql );	//发送预处理				
                c)给预处理绑定数据					
                    i.$arr = array(					
                    ii.   ‘:s_name’=>’房祖名’,					
                    iii.   ‘:s_num’=>’itcast0001’,
                    iv.   ‘:s_gender’=>’男’,
                    v.   ‘:s_age’=>’28’,		
                    vi.   ‘:c_id’=>’2’,					
                    vii.)				
                d)$stmt->execute( $arr );		//执行预处理		
        iii.通过绑定变量的形式			
            1.步骤				
                a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”;	//sql				
                b)$stmt = $pdo->prepare( $sql );	//发送预处理				
                c)给预处理绑定数据					
                    i.$name = “李莫愁”;					
                    ii.$num= “itcast0002”;					
                    iii.$gender = “女”;					
                    iv.$age = “30”;					
                    v.$c_id = “3”;					
                    vi.//将变量绑定给预处理					
                    vii.$stmt->bindParam(‘:s_name’,$name);					
                    viii.$stmt->bindParam(‘:s_num’,$num);					
                    ix.$stmt->bindParam(‘:s_gender’,$gender);					
                    x.$stmt->bindParam(‘:s_age’,$age);					
                    xi.$stmt->bindParam(‘:c_id’,$c_id);				
                d)$stmt->execute(  );		//执行预处理	
    e)PDO事务处理		
        i.事务处理就是  增删改		
        ii.注意:数据表的存储引擎必须是 innoDB		
        iii.事务处理流程			
            1.$pdo = new PDO(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’);	//连接认证			
            2.$res = $pdo->beginTransaction();		//开启事务			
            3.事务处理				
                a)$sql = “updata pro_student set s_age=28 where s_id=20”;				
                b)$lines = $pdo->exec( $sql );	//返回受影响的行数				
                c)$sql = “select * from pro_student where s_id=20”;				
                d)$stmt = $pdo->query( $sql );				
                e)$stmt->fetch(PDO::FETCH_ASSOC);			
            4.提交事务				
                a)if( $links ){				
                b)    $pdo->commit();	//更新成功				
                c)}else{				
                d)    $pdo->rollBack();	//更新失败   回滚数据				
                e)}	
    f)PDO 属性设置		
        i.设置PDO在处理数据的过程中采用什么方式去处理		
        ii.PDO::getAttribute();		//获取属性		
        iii.PDO::setAttribute();		//设置属性		
        iv.示例:			
            1.$pdo = new PD(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’);	//连接认证			
	    2.$peo->getAttrbute(PDO::ATTR_AUTOCOMMIT);		//获取 自动提交属性			
	    3.$pdo->setAttrbute(PDO::ATTR_AUTOCOMMIT,0)		//设置 关闭自动提交		
        v.参数记忆:			
            1.PDO::ATTR_CASE	强制列名为指定的大小写				
                a)PDO::CASE_LOWER		强制小写				
		b)PDO::CASE_UPPER		强制大写	
	vi...... 更多请参考手册 ......
    g)PDO异常处理		
	i.try{		
	ii.    //设置错误处理模式(必须设置才能生效)		
	iii.    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);		
	iv.    //一旦出错立即进入catch语句		
	v.}catch(PDOException $e){		
	vi.    $e->getTrace();  //获取完整的错误数据		
	vii.    $e->getFile();   //获取错误文件		
	viii.   $e->getLine();   //获取错误行号		
	ix.    $e->getMessage();   //获取错误原因		
	x.}	
    h)反射:		
	i.反射就是将其他类的结构给反应出来,从而可以对类的结构进行了解便于对类的使用		
	ii.Reflection		
	iii.reflectionClass::export(要反射的类名)		
	iv.调用reflectionClass的静态方法		
	v.var_dump( reflectionClass::export(‘PDO’) );		
	vi		
	vii.$rc = new ReflectionClass(‘PDO’);  //创建ReflectionClass对象		
	viii.var_dump( $rc->getProperties() );  //获取全部属性		
	ix.var_dump( $rc->getMothods() );   //获取全部方法		
	x.var_dump( $rc->getConstants() );  //获取全部常量

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 4.4万人学习

R 教程
R 教程

共45课时 | 5.8万人学习

Pandas 教程
Pandas 教程

共15课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号