PDO由三种主要类型的对象组成:PDO对象、PDOStatement对象和 PDOException对象。我们不应忽视PDO驱动程序,但这三种类型的对象一起构成PDO扩展的主接口。...因为PDO::query在成功时将结果集作为PDOStatement 对象返回(失败时将返回布尔值false,如果要验证,请执行与PDO::exec类似的检查)。...通常与SQL语句(如查询或更新)一起使用,准备好的语句采用模板的形式,在每次执行期间将某些常量值替换到模板中。 prepare语句解决了上面提到的两个问题。...但是,这里要注意的一件更重要的事情是,PHP会验证列表的值是否和数据库中的字段数据类型相匹配,列表这么多的数据,这就很容易产生不匹配错误。...维护性:指定传递变量的数据类型的第三个参数,防止PHP产生不兼容的数据类型,容易产生错误。从长远来看,这也使得代码更易于维护,因为未来的开发人员一眼就能看到数据类型。
PHP PDO预定义常量 以下常量由本扩展模块定义,因此只有在本扩展的模块被编译到PHP中,或者在运行时被动态加载后才有效。 注意:PDO使用类常量自PHP 5.1。...PDO::FETCH_LAZY (integer)指定获取方式,将结果集中的每一行作为一个对象返回,此对象的变量名对应着列名。PDO::FETCH_LAZY 创建用来访问的对象变量名。...在 PDOStatement::fetchAll() 中无效。 PDO::FETCH_ASSOC (integer)指定获取方式,将对应结果集中的每一行作为一个由列名索引的数组返回。...PDO::FETCH_NAMED (integer)指定获取方式,将对应结果集中的每一行作为一个由列名索引的数组返回。...PDO::CURSOR_FWDONLY (integer)创建一个只进游标的 PDOStatement 对象。此为默认的游标选项,因为此游标最快且是 PHP 中最常用的数据访问模式。
1.2.3 开启PDO扩展 开启PDO连接MySQL扩展 extension=php_pdo_mysql.dll 1.3 PDO核心类 1、PDO类:表示PHP和数据库之间的一个连接 2、PDOStatement...$pdo->errorInfo()[2]; } 1.5.2 执行数据查询语句 方法:pdo−>query(pdo->query(pdo−>query(sql),返回的是PDOStatement对象 columnCount(); */ //3.5 遍历PDOStatement对象(PDOStatement对象是有迭代器的) foreach($stmt as $row){ echo...$row['proname'],'-',$row['proprice'],''; } stdClass类是所有PHP类的父类 1.5.3 PDO操作事务 事务:是一个整体,要么一起执行,要么一起回滚...事务的特性:原子性,一致性,隔离性,永久性 需要将多个SQL语句作为一个整体执行,就需要使用到事务 语法 start transaction 或 begin 开启事务 commit 提交事务 rollback
bindParam() 的第二个参数是作为引用类型的变量,不能指定为一个常量。...从代码的结构中我们就可以看出,bindColumn() 方法对于变量也是作为引用的方式绑定到 PDOStatement 对象内部的,所以 fetch() 在处理的时候就直接为这些变量赋上了值。...如果获取的类型和我们绑定时定义的类型不同,那么 PDOStatement 就会强转为绑定时指定的类型。...; $stmt->execute(['jjjj','8888','j8']); execute() 的这个绑定参数是一个数组,在使用问号占位符的时候需要注意,在这里,按数组的下标来说,它们是从 0 开始算位置的...另外需要注意的是,PDOStatement 对象的操作都是使用 execute() 方法来进行语句执行的。这个方法只会返回一个布尔值,也就是成功或者失败。
PHP中的PDO操作学习(二)预处理语句及事务 今天这篇文章,我们来简单的学习一下 PDO 中的预处理语句以及事务的使用,它们都是在 PDO 对象下的操作,而且并不复杂,简单的应用都能很容易地实现。...只不过大部分情况下,大家都在使用框架,手写的机会非常少。 预处理语句功能 预处理语句就是准备好一个要执行的语句,然后返回一个 PDOStatement 对象。...在代码中,我们使用这一条 SQL 语句,通过替换不同的占位符内容,实现了两次查询。 prepare() 方法的第二个参数是为返回的 PDOStatement 对象设置的属性。...PDO::ATTR_CURSOR 是设置数据库游标的类型,而 PDO::CURSOR_FWDONLY 的意思是创建一个只进游标的 PDOStatement 对象。...此外,PDOStatement 还可以通过 bindParam() 方法来绑定占位符数据,我们将在后面学习 PDOStatement 对象相关的文章中继续学习。 接下来,我们再看一下使用 ?
PDOStatement::getColumnMeta PDOStatement::getColumnMeta — 返回结果集中一列的元数据(PHP 5 = 5.1.0, PECL pdo = 0.2.0...) 说明 语法 array PDOStatement::getColumnMeta ( int $column ) 检索一个在结果集中以0开始索引的列的元数据作为一个关联数组。...注意:此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。...返回值 返回一个关联数组,它包含了下列表示一个单独列的元数据的值: 列的元数据 名称 值 native_type 用于表示列值的 PHP 原生类型。...driver:decl_type在数据库中用于表示列值的 SQL 类型。如果结果集中的列是一个函数的结果,则该值不能被 PDOStatement::getColumnMeta() 返回。
,并分配结果集中的列值给PDOStatement::bindColumn() 方法绑定的 PHP 变量。...创建供用来访问的对象变量名 _PDO::FETCHNUM :返回一个索引为以0开始的结果集列号的数组 _PDO::FETCHOBJ :返回一个属性名对应结果集列名的匿名对象 cursor_orientation...对于 一个 PDOStatement 对象表示的可滚动游标,该值决定了哪一行将被返回给调用者。...要想让 PDOStatement 对象使用可滚动游标,必须在用 PDO::prepare() 预处理SQL语句时,设置 PDO::ATTR_CURSOR 属性为 PDO::CURSOR_SCROLL。...::fetch() 前游标的位置 返回值 此函数(方法)成功时返回的值依赖于提取类型。
预处理语句功能 预处理语句就是准备好一个要执行的语句,然后返回一个 PDOStatement 对象。一般我们会使用 PDOStatement 对象的 execute() 方法来执行这条语句。...在代码中,我们使用这一条 SQL 语句,通过替换不同的占位符内容,实现了两次查询。 prepare() 方法的第二个参数是为返回的 PDOStatement 对象设置的属性。...PDO::ATTR_CURSOR 是设置数据库游标的类型,而 PDO::CURSOR_FWDONLY 的意思是创建一个只进游标的 PDOStatement 对象。...此外,PDOStatement 还可以通过 bindParam() 方法来绑定占位符数据,我们将在后面学习 PDOStatement 对象相关的文章中继续学习。 接下来,我们再看一下使用 ?...在 PHP中操作数据库的预处理语句 这篇文章中有详细的示例。 事务能力 关于事务想必大家也都有一定的了解,所以在这里也不介绍具体的概念了,我们只看看在 PDO 中事务是如何实现的。
PDO的概述 PDO(PHP Data Object)是有MySql官方封装的、基于面向对象编程思想的、使用C语言开发的数据库抽象层。...语句 query()语句常用于SELECT语句,他的返回值是PDOStatement的实例,是PDO的结果集 PDOStatement PDO::query(sql) 预处理语句 PDO提供对预处理语句的支持...1、定义预处理语句 使用prepare()方法可以执行SQL预处理语句,得到一个PDOStatement实例。...(3)直接使用execute()方法传递一个数组,命名参数使用关联数组,数据站位符使用索引数组。...解析结果集 fetch()方法 使用fetch()方法可以从结果集中获取下一行的数据,返回的数组依赖于提取的类型。
PDOStatement::bindColumn PDOStatement::bindColumn — 绑定一列到一个 PHP 变量(PHP 5 = 5.1.0, PECL pdo = 0.1.0)...但是,当使用 PgSQL 驱动时,要想能绑定一个 LOB 列作为流,应用程序必须在调用PDOStatement::execute()之前 调用此方法,否则大对象 OID 作为一个整数返回。...参数 column 结果集中的列号(从1开始索引)或列名。如果使用列名,注意名称应该与由驱动返回的列名大小写保持一致。...param 将绑定到列的 PHP 变量名称 type 通过 PDO::PARAM_* 常量指定的参数的数据类型。 maxlen 预分配提示。 driverdata 驱动的可选参数。...实例 把结果集输出绑定到 PHP 变量 绑定结果集中的列到PHP变量是一种使每行包含的数据在应用程序中立即可用的有效方法。下面的例子演示了 PDO 怎样用多种选项和缺省值绑定和检索列。 <?
Linux操作系统,PHP面向对象,语言高级开发技术,常用PHP开发框架,PHP与公共api接口开发,PHP测试工具。...数据库PDO简介: pdo简介,安装与配置,pdo链接数据库,pdo对象方法介绍以及使用,pdostatement对象方法介绍以及使用,pdo错误处理,pdo参数绑定与预处理,pdo事务处理,pdo实战...关联数组形式 PDO::FETCH_NUM数字索引数组形式 PDO::FETCH_BOTH两者数组形式都有 PDO::FETCH_OBJ按照对象的形式 PDO::FETCH_BOUND以布尔值的形式返回结果...PDO::FETCH_LAZY 以关联数组,数字索引,和对象三种形式返回 cursor_orientation:PDOStatement对象的一个滚动游标 cursor_offset:游标的偏移量...php $dbms='mysql'; // 数据库类型,对于开发者来说,使用不同的数据库,只要该这个就行 $host='localhost'; $dbName='db_database'; $user
PDOStatement::fetchObject PDOStatement::fetchObject — 获取下一行并作为一个对象返回。...(PHP 5 = 5.1.0, PECL pdo = 0.2.4) 说明 语法 mixed PDOStatement::fetchObject ([ string $class_name = "stdClass..." [, array $ctor_args ]] ) 获取下一行并作为一个对象返回。...此函数(方法)是使用 PDO::FETCH_CLASS 或 PDO::FETCH_OBJ 风格的 PDOStatement::fetch()的一种替代。 参数 class_name 创建类的名称。...ctor_args 此数组的元素被传递给构造函数。 返回值 返回一个属性名对应于列名的所要求类的实例, 或者在失败时返回 FALSE。
执行sql语句: exec() 、query()、 perpare(); 1、query用来处理有结果集的,如select, 返回 PDOStatement 对象,失败返回false(当为 PDO:...参数 --- 索引数组, 按索引顺序使用 * 名子参数 ----关联数组, 按名称使用,和顺序无关 */ //准备好了一条语句,并入到服务器端,也已经编译过来了,就差为它分配数据过来 //同样适用于更新操作...; /* 对于 $params 数组中的每个值,要预处理的语句包含足够的未命名占位符 。 语句被执行时, $params 数组中的值被绑定到预处理语句中的占位符。...这和使用 PDOStatement::bindParam() 不一样,因为它需要一个引用变量。 PDOStatement::execute() 仅作为通过值绑定的替代。...替代的方法是,使用 PDO::query() 来发出一条和原打算中的SELECT语句有相同条件表达式的 SELECT COUNT(*) 语句,然后用 PDOStatement::fetchColumn(
1)PDO PDO类主要实现PHP和数据库的连接,重要方法如下: a.PDO:构造器,构造新的PDO对象。...2)PDOStatement PDOStatement类主要是对PDO类的prepare方法预处理的语句进行执行,并处理执行后的结果集。...c.bindValue:绑定一个值与处理语句中的参数。 d.columnCount:返回结果集中列的数量。...二、PHP使用PDO实现增删改查 1)单例模式实现类的实例化(重点:privatestatic $inc、private __construct、__clone、public getInstance )...为了利用PDO的安全性,因此在拼接SQL时,需要将用户输入的参数使用占位符进行替换(即在拼接时使用冒号+字段名,或者使用问号),并且在完成sql拼接以及PDO类的prepare方法后,使用PDOStatement
PDOStatement::fetchAll PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组(PHP 5 = 5.1.0, PECL pdo = 0.1.0) 说明...PDO::FETCH_CLASS :返回指定类的实例,映射每行的列到类中对应的属性名。 PDO::FETCH_FUNC :将每行的列作为参数传递给指定的函数,并返回调用函数后的结果。...返回值 PDOStatement::fetchAll()返回一个包含结果集中所有剩余行的数组。此数组的每一行要么是一个列值的数组,要么是属性对应每个列名的一个对象。...使用此方法获取大结果集将导致系统负担加重且可能占用大量网络资源。与其取回所有数据后用PHP来操作,倒不如考虑使用数据库服务来处理结果集。...例如,在取回数据并通过PHP处理前,在SQL 中使用 WHERE 和 ORDER BY 子句来限定结果。 实例 获取结果集中所有剩余的行 <?
起因 PaaS作为“云”的概念,已经流行了很久。从使用的角度上看,似乎就是:写一个PHP,然后可以直接传到服务器上,用户就能通过某个URL访问你写的PHP了。...[1510126142353_3848_1510126187882.jpg] 本文主要的研究对象是Google出品的App Engine,以及Amazone的AWS两个产品。...[1510126591740_6313_1510126637205.jpg] 作为一个Web App的容器,GAE在运维配置工具上,提供了全套Web界面的操作软件——Google Cloud Platform...Engine Datastore:NoSQL对象存储服务 Google Cloud SQL:在GAE上的MySQL,由于是关系数据库,所以不能自动扩容 Google Cloud Storage:以Restful...接PaaS调研:GAE与AWS(下) 本文来源于 韩大微信公众号
GCM(Google Cloud Message for Android)是Google发布的Android服务器推送(push)技术。...检查 Google Play 服务 APK 实现连接服务器协议 Firebase Cloud Messaging服务器端包含两个组件: 1、GCM 连接服务器,由 Google 提供。...实现 HTTP 连接服务器协议 1、发送下游消息官方文档https://firebase.google.cn/docs/cloud-messaging/downstream?...设置消息优先级 "priority" : "high", 下游消息语法 官方文档 : https://firebase.google.cn/docs/cloud-messaging/http-server-ref...而當 Android 裝置解除安裝您的 app 時,Google GCM server 並不會立即通知您的 thrid party server,而是在下一次您發送訊息給該 Android 裝置時,Google
今天我们就来学习了解一下使用 PDO 如何操作 MySQL 中的大数据对象。...大对象本质上可能是文本或二进制形式的,我们在 PDOStatement::bindParam() 或 PDOStatement::bindColumn() 调用中使用 PDO::PARAM_LOB 类型码可以让...PDO 使用大数据类型。...PDO::PARAM_LOB 告诉 PDO 作为流来映射数据,以便能使用 PHP Streams API 来操作。 对于 MySQL 来说,将字段类型设置为 blob 即是大对象格式的字段。...); // 指定获取方式,返回 TRUE 且将结果集中的列值分配给通过 PDOStatement::bindParam() 或 PDOStatement::bindColumn() 方法绑定的 PHP
虽然可以用mysql_real_escape_string()函数过滤用户提交的值,但是也有缺陷。而使用PHP的PDO扩展的 prepare 方法,就可以避免sql injection 风险。...PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助 。...1、PDO配置 使用PDO扩展之前,先要启用这个扩展,PHP.ini中,去掉"extension=php_pdo.dll"前面的";"号,若要连接数据库,还需要去掉与PDO相关的数据库扩展前面的";"号...ID PDOStatement::fetch()是用来获取一条记录 PDOStatement::fetchAll()是获取所有记录集到一个集合 PDOStatement::fetchColumn()是获取结果指定第一条记录的某个字段...虽然你可以配置文件中设置字符集的属性(charset=utf8),但是需要格外注意的是,老版本的 PHP( 我们来看一段完整的代码使用实例: $dbh = new PDO("mysql:host=localhost
函数技巧 变量技巧 可变变量: 将一个变量的值 作为另一个变量名 来使用 引用变量 函数技巧 可变函数: 将一个变量的值 作为函数名 来使用 引用函数: 通过 &符 将内存地址赋予 // 引用函数例.../U 忽略空白 X 匹配结果忽略空白 大小写匹配 i 匹配结果不区分大小写 单次匹配函数 preg_match( 正则, 对象, 结果) 结果是一个数组 返回每个匹配到的原子 返回值时1或者0...过滤不符合正则规定的格式 2. **一般与向后引用一起使用** 3....$this 伪对象 $this 不需要声明,直接代表当前对象 只能在 类内 使用 一般用于类内操作属性 或 方法 伪对象使用方法 ———- (以下内容与方法是在写 类的内部的!!!...对象 例: 通过 PDOStatement 获取数据 PDOStatement -> fetch ( 参数 ) 获取一条数据 PDOStatement -> fetchAll ( 参数 ) 获取所有数据
领取专属 10元无门槛券
手把手带您无忧上云