面向对象php学习笔记21:PDO[PDO基本应用,PDO写操作,PDO查询操作,PDO事务]

PHP操作PDO、预处理以及事务 阅读详情

PDO

  • PDO类:统一的数据库的初始化操作,包括连接认证和执行sql指令
  • PDOStatement类:数据解析操作,主要针对数据结果操作(有数据结果返回)
  • PDOException类:异常处理操作,针对所有PDO操作可能出现的错误采用的异常模式处理

一.PDO扩展

定义:PDO扩展,即PDO提供了1套帮助用户实现多数据库操作的统一接口,通过使用PDO,开发人员不需要额外自定义数据库对应的操作类,从而简化开发过程

1. PDO在php5以前要手动加载扩展,PHP5以后自动加载无须配置

2. PDO是多数据库扩展.需要在php.ini中配置对应的数据库,例如mysql

3. 加载扩展之后须重启服务器.然后使用PHPinfo()函数查看pdo,及PDO_MYSQL是否加载

二.pdo操作

 PDO手册查阅

官方PDO手册参考

PDO类基本应用

定义:PDO是php data object的简称.代表php数据对象,是一种纯面向对象的方式实现的数据库操作扩展.

1. PDO类 虽然提供了很多方法,但是常用的方法有以下几个.

PDO :: errorInfo()返回有关此数据库句柄执行的上一个操作的错误信息数组。 该数组至少包含以下字段:
[0] SQLSTATE错误代码(ANSI SQL标准中定义的五个字符的字母数字标识符)。
[1]特定于驱动程序的错误代码。
[2]特定于驱动程序的错误消息

2.PDO实例化对象:使用构造方法__construct(string $dsn, string $user, string $pass, [array $drivers])实现,构造方法由4个参数组成,其中一般前三个为必须参数,第四个为可选参数.

$dsn:一个数据库基本信息字符串,包含数据库产品,主机地址等

  • 驱动名字(数据库产品):使用英文:分隔.例如mysql:表示使用mysql数据库
  • 驱动选项(主机地址):使用host=具体主机地址,跟着驱动名字之后,如'mysql:host=localhost'
  • 驱动选项(端口),使用port=端口号,默认为3306可以不写.在驱动名字后,不区分先后顺序.如'mysql:host=localhost;port=3306'或者'mysql:port=3306;host=localhost',使用分号和驱动分开
  • 驱动选项(数据库名字),使用dbname=数据库名字(可以事先没有)

$user:用户名,如果数据库允许匿名用户出现,可以没有参数(只有$dsn)

$pass:密码,与用户名一样

$drivers:PDO属性设置,是关联数组,利用PDO内部的常量进行设置

3.得到对象后,利用该PDO对象调用相关方法执行sql操作:exec执行数据返回sql,query执行有结果返回sql

4.如果PDO对象执行SQL指令出错,即SQL本身有错误,那么可以通过pdo类提供的errorCode()和errorInfo()

总结

PDO写操作

定义:写操作,即使用PDO实现数据库增删改操作,操作过程中要考虑sql本身可能出现的错误处理,以及对结果的操作处理.

1.初始化PDO,每次操作都需要POD实例化:封装执行

2.SQL通常应该是外部传入,外部需要的只是结果,不考虑过程,所以在实际开发时要考虑二次封装.即外部传入sql,内部执行并控制错误,最终返回结果

3.具体写操作

注意:一般写操作都是受影响行数,但是如果是插入操作,有时候需要新增记录的自增长ID,可以通过PDO::lastInsertID()来获取.

总结:

PDO查询操作

定义:查询操作即通过执行SQL指令后从数据库获得相应的数据,然后对数据加工变成php可识别的模式

1.查询是建立在连接之上,因此需要使用到前面封装的初始化功能

2.查询的sql也是可能出问题的部分,因此同样需要进行错误检查.另外PDO查询使用的是PDO::query()方法实现

3.此时查询的结果是一个PDOStatement对象,不能提供任何php可访问的数据结果,还需要对结果进行处理.而我们查询数据的时候通常是两种操作:根据具体条件获取一条记录或多条记录,因此返回的数据是不同的.解决方案也有多种方式:①创建多个函数来实现不同效果;②创建1个函数,但是通过参数来控制实现不同效果

4.此时从功能上来讲,只要顺序调用以上几个方法即可完成

 

5.PDOStatement::fetch(),PDOStatement::fetchall()方法默认返回的数据是重复的:数字下标索引和K-V关联方式的数组各出现一次.可设置fetch系统的条件fetch_style来实现

fetch_style:控制下一行如何返回给调用者。此值必须是 PDO::FETCH_* 系列常量中的一个,缺省为 PDO::ATTR_DEFAULT_FETCH_MODE 的值 (默认为 PDO::FETCH_BOTH )。

  • PDO::FETCH_ASSOC:返回结果集为K-V关联的数组

  • PDO::FETCH_BOTH(默认):返回结果集列为2个数组:1个K-V关联的数组,1个数字下标(从0开始)的数组.

  • PDO::FETCH_NUM:返回结果集为数字下标(从0开始)的数组

总结

PDO事务

定义:php将mysql支持的事务操作进行一定封装实现.注意:事务是否执行成功是由mysql对应的存储引擎是否支持决定的.

1.事务功能回顾:事务是指改变默认的一次操作一次写入数据表的机制,而是通过事务日志记录操作,在最后通过一次性操作写入到数据表.事务过程如下

  • 开启事务: start transaction,写操作停止直接写入数据表,而是记录到事务日志
  • 事务操作:具体的写操作,通常多个步骤多条指令
  • 提交事务:即事务操作结束
  1. 成功提交: commit,所有事务日志同步到数据表,并清空当前事务日志
  2. 失败回滚: rollback,直接清空当前事务日志

2.PDO类中提供1套方案来实现事务操作

3.在事务操作中,有一种回滚点机制,在PDO中没有实现,如果有必要,可以通过sql指令具体实现

总结

采用离散模型搭建永磁同步电机控制系统 永磁同步电机发电系统分为控制器和发电机,通过simulink仿真软件进行发电系统的离散系统仿真。离散搭建仿真,可以更方便的自动代码生成。通过实践经验离散模块搭建,更能加深对整个控制系统的理解。离散系统在矢量控制中经常涉及到上个开关周期的角度,电压,或者预测下个周期的角度,电流,一般都是通过延时模块实现。PWM比较值寄存器被改写后都是使能了预装载,采样后触发计算到比较值生效可以延时0.5个开关周期Ts,也可以延时1个开关周期Ts,可以通过离散系统进行仿真,大大缩短开发周期。 阅读详情

相关推荐

iTerm2+oh-my-zsh最全配置

iTerm2+oh-my-zsh最全配置安装前先看效果图一.安装[iTem2](https://iterm2.com/)二.安装[oh-my-zsh](https://ohmyz.sh/)三.安装[Powerline](https://powerline.readthedocs.io/en/latest/installation.html)四.安装 [Meslo](https://github.com/powerline/fonts) 字体库五.安装agnoster主题六.安装语法高亮七.安装代码补全插件八

xinximo的博客 2610

php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别

PDO对预处理语句的支持需要使用PDOStatement类对象,但该类对象并不是通过NEW关键字实例化出来的,而是通过PDO对象中的prepare()方法,在数据库服务器中准备好一个预处理的SQL语句后直接返回的。如果通过之前执行PDO对象中的query()方法返回的PDOStatement类对象,只代表的是一个结果集对象。而如果通过执行PDO对象中的prepare()方法产生的PDOStatement类对象,则为一个查询对象,能定义和执行参数化的SQL命令。连接数据库,获取PDO实例对象。

m0_63622279的博客 1121

用Pixel5玩转AOSP:从零开始定制Android13系统(含GMS集成方案)

本文提供了一份详尽的Pixel 5 AOSP定制指南,涵盖从环境搭建、源码下载、系统编译到刷机的完整流程。重点解决了原生AOSP缺失Google移动服务(GMS)的难题,分享了从官方镜像提取并集成GMS组件的实战方案,助你打造独一无二的Android 13系统。

sam99的博客 526

php mysql pdo 类_详解PHP中的PDO类

简介咱一起来看看PDO类。PDO是PHP Data Objects的缩写,它被描述为“在PHP中访问数据库的轻量级,兼容性的接口”。尽管它的名字不咋好听,但PDO是一个在PHP中访问数据库会让人喜爱的方式。与MySQLi的不同MySQLi和PDO很相似,都有两方面主要区别:1.MySQLi只能访问MySQL,但PDO可以访问12种不同的数据库2.PDO没有普通函数调用(mysqli_*functi...

weixin_34580441的博客 391

思科9117AP从零配置EWC模式实战:Wi-Fi6网络搭建避坑指南

本文详细介绍了思科9117AP在Wi-Fi6网络环境下配置EWC模式的实战指南,涵盖镜像准备、网络环境配置、模式转换步骤及高级运维技巧。通过EWC模式,企业可实现控制器与AP的一体化部署,显著降低成本和简化运维,特别适合中小企业Wi-Fi6网络搭建。

weixin_28318011的博客 332

同济大学C++mooc第五、六讲参考答案

同济大学C++moooc第5、6讲 第五讲 第一题 随机产生10个30~100(包括30,100)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。 代码片. // #include<iostream> const int n = 10; using namespace std; int main() { int s[n],i,j,t,sum=0; for (i = 0; i < n; i++)

cjzui6666的博客 1万+

PHP中的PDO对象操作学习(一)初始化PDO及原始SQL语句操作

PHP中的PDO对象操作学习(一)初始化PDO及原始SQL语句操作PDO 已经是 PHP 中操作数据库事实上的标准。包括现在的框架和各种类库,都是以 PDO 作为数据库的连接方式。基本上...

硬核项目经理 631

【控制模块算法】控制理论的进修之路

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、(经典)自动控制理论【本科阶段】二、现代控制理论【本科阶段】三、最优控制理论【硕士阶段】总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对对控制理论的理解做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、(经典)自动控制理论【本科阶段】 一般控制工程、自动化相关的考研专业课就是自动

qq_35635374的博客 1447

php中pdo和面向对象,php中PDO入门学习笔记

PDO是高版本php中的一个mysql数据库操作功能了,我们下面就一起来看看关于php中PDO的一些学习笔记,有兴趣了解PDO的朋友可一起来看看哦.一、PDO简介PDO是PHP Data Object的简称,用于定义数据库访问的抽象层,统一各种数据库的访问接口。PDO有如下特性:编码一致性:PDO支持多种数据库扩展,并为其提供统一的访问接口灵活性:PDO提供了统一的SQL操作方法和属性高效性:PD...

weixin_39722375的博客 240

SAP CAP 编程模型简介

官网 CAP 是用于构建企业级服务和应用程序的语言、库和工具框架。它引导开发人员沿着经过验证的最佳实践和大量现成的解决方案来应对重复性任务的“黄金之路”。 基于 CAP 的项目受益于对领域的主要关注。我们没有深入研究过于技术性的学科,而是专注于在快速变化的云技术世界中加速开发和保护投资。 CAP 框架融合了经过验证和广泛采用的开源和 SAP 技术,如下图所示。 在开源技术之上,CAP主要增加了: 核心数据服务 (CDS) 作为我们用于域模型和服务定义的通用建模语言。 用于 Node.js 和 Ja

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1544

基于STM32的智慧农业大棚监测与控制系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧农业大棚监测与控制系统,集成多参数环境监测、智能控制和远程管理功能。系统可实时采集光照、CO2、温湿度和土壤湿度等参数,通过OLED显示并采用双模式控制机制:自动模式下根据阈值调节设备,手动模式下支持APP或按键控制。通过ESP8266模块接入机智云平台实现数据云存储和远程控制。测试表明系统具有高精度(温度±0.5℃、CO2±50ppm)、快速响应(<2s)和稳定运行(30天无故障)等特点,有效解决了传统大棚调控不及时等问题。创新点包括多参

3254968421的博客 484

【深入使用】PHP的PDO 基本使用

PDO接口执行脚本操作数据库

zgscwxd的博客 3161

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【PHP语言-PDO接口】PDO接口执行脚本操作数据库_php pdo

1、PDO简介(1)PHP的PDO(PHP Data Objects)是一种用于在PHP中访问数据库的扩展。它提供了一个统一的接口,使得开发人员可以使用相同的方式与不同类型的数据库进行交互,例如MySQL、PostgreSQL和SQLite等(2)它与PHP5.1版本一起发布的,目前支持的数据库包括Firebird、FreeTDS、Interbase、MySQL、MS SQL Server、ODBC、Oracle、Postgre SQL、SQLite和Sybase。

2401_89317339的博客 2329

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PHP面向对象04:PDO

PHP面向对象04:PDO 一、PDO概述 二、PDO操作 1. PDO类基本应用 2. 写操作 3. 查询操作 4. PDO事务功能 三、PDO异常 1. PHP异常机制 2. PDO错误机制 3. PDOException异常处理 四、预处理 1. MySQL预处理 2. PDO预处理 五、封装PDO

iFulling的博客 912

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【PHP语言-PDO接口】PDO接口执行脚本操作数据库

【PDO接口-数据库】PDO使用、方法

6212

php mysql PDO 查询操作的实例详解

这篇文章主要介绍了php mysql PDO 查询操作的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下 php mysql PDO 查询操作的实例详解 1、建立连接 持久性链接PDO::ATTR_PERSISTENT=>true 2、捕捉错误 3、事务的 4、错误处理 a. 静默模式(默认模式) 使用 query() 使用 prepare, bindParam和 execute [建议用,同时可以用添加、修改、删除] 事物 PDO常用方法: PDO

weixin_49163826的博客 500

pdo查询mysql_php mysql PDO 查询操作的实例详解

这篇文章主要介绍了php mysql PDO 查询操作的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下php mysql PDO 查询操作的实例详解1、建立连接持久性链接PDO::ATTR_PERSISTENT=>true2、捕捉错误3、事务的4、错误处理a. 静默模式(默认模式)使用 query()使用 prepare, bindParam和 execute [建议用,...

weixin_36033417的博客 449

面向对象:PDO

转载于:黑马程序员武汉中心 PDO 学习目标:学习别人写好的类的使用,掌握PDO类对数据库的操作,并且能够基于PDO进行二次封装来实现更快捷的项目开发 PDO扩展 PDO操作 PDO异常 封装PDO 概念 PDO:php Data Object,是一种纯面向对象的数据库操作扩展 PDO在php5以后的版本增加,是目前通用的php操作数据库的扩展 PDO能够支持多种数据库操作,不限定数据库产品类型 PDO是一种纯面向对象的操作,有三个类 PDO类:初始化和SQL执行 PDOStatemen.

末初 · mochu7 1165

php pdo简书,php mysql PDO 查询操作的实例详解

这篇文章主要介绍了php mysql PDO 查询操作的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下php mysql PDO 查询操作的实例详解在这里插入图片描述1、建立连接在这里插入图片描述持久性链接PDO::ATTR_PERSISTENT=>true2、捕捉错误在这里插入图片描述3、事务的在这里插入图片描述4、错误处理a. 静默模式(默认模式)在这里插入图片描述在...

weixin_31990755的博客 254

pdo mysql 绑定查询_php mysql PDO 查询操作的实例详解

php mysql PDO 查询操作的实例详解php mysql PDO 查询操作的实例详解这篇文章主要介绍了php mysql PDO 查询操作的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下1、建立连接持久性链接PDO::ATTR_PERSISTENT=>true2、捕捉错误3、事务的4、错误处理a. 静默模式(默认模式)使用 query()使用 prepare, b...

weixin_39923806的博客 242

php pdo 遍历,PHP PDO操作总结

0x01:测试PDO是否安装成功运行如下代码,如果提示参数错误,说明PDO已经安装,如果说明对象不存在,则修改PHP配置文件php.ini,取消php_pdo_yourssqlserverhere.extis前面的注释。$test=new PDO();0x02:连接数据库运行Apache服务器,确定服务器已经运行并且PDO安装成功,那么下面我们就来连接数据库吧。$dsn = 'mysql:dbna...

weixin_35651855的博客 494

php mysql PDO安装及基本使用

一、什么是PDO? PDO 就是PHP data Object 提供了PHP操作多种数据库的统一的接口。PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。二、安装  【通过PHP 的 phpinfo() 函数来查看是否安装了PDO扩展】Windows 用户::1、开启PDO步骤:找到php.ini 2、开启:php_pdo_mysql.dl...

DuTianTian_csdn的博客 1080

PHP:PDO 事务示例

在大多数情况下,这个工作“单元”将由多个查询组成,这些查询以某种方式相互关联。换句话说,如果第二个查询无法更新用户的信用余额,我们不想在支付表中插入记录。在本指南中,我们将向您展示如何将事务与 PHP 的 PDO 对象一起使用。对于这个例子,我们将创建一个模拟 PHP 应用程序,为用户帐户添加资金。对于那些不知道的人,数据库事务代表一个“块”或一个“单元”工作。如果发生这种情况,我们的 catch 块内的代码将执行。在此示例中,我们确保在提交更改之前所有查询都成功。我们的 PDO 事务代码的解释。

allway2的博客 525

php pdo 开启事务,PHP中PDO事务处理操作示例

这篇文章主要介绍了PHP中PDO事务处理操作,结合实例形式分析了php使用pdo的mysql事务处理操作步骤、实现技巧及相关注意事项,需要的朋友可以参考下本文实例讲述了PHP中PDO事务处理操作。分享给大家供大家参考,具体如下:概要:将多条sql操作(增删改)作为一个操作单元,要么都成功,要么都失败。单条数据不用事务处理被操作的表必须是innoDB类型的表(支持事务)MySQL常用的表类型:MyI...

weixin_33610842的博客 459

PHP PDO查询

概念: PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。 使用PDO连接MySql数据库 <?php $dbms='mysql'; //数据库类型 $host='localhost'; //数据库主机名 $dbName='test'; //使用的数据库 $user='root'; //数据库连接用户名...

qq_42751483的博客 360

PHP之PDO

简介 PHP 数据对象(PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。 注意利用 PDO 扩展自身并不能实现任何数据库功能;必须使用一个具体数据库的 PDO 驱动来访问数据库服务。 PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。 PD...

浪子四方 869
上一篇: 面向对象php学习笔记20:命名空间[命名空间基础,命名空间应用,命名空间引入]
下一篇: html+css学习笔记01:HTML,HTML标签[h1-6,p,hr,]
申佳明哥哥
博客等级 码龄10年 39粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值