PDOStatement::closeCursor — 关闭游标,使语句能再次被执行。(PHP 5 = 5.1.0, PECL pdo = 0.9.0)
PDOStatement::columnCount — 返回结果集中的列数。(PHP 5 = 5.1.0, PECL pdo = 0.2.0)
PDOStatement::setFetchMode — 为语句设置默认的获取模式。(PHP 5 = 5.1.0, PECL pdo = 0.2.0)
PDOStatement::rowCount — 返回受上一个 SQL 语句影响的行数(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 SQLSTATE(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDOStatement::fetchColumn — 从结果集中的下一行返回单独的一列。(PHP 5 = 5.1.0, PECL pdo = 0.9.0)
PDOStatement::bindColumn — 绑定一列到一个 PHP 变量(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDO::query — 执行 SQL 语句,返回PDOStatement对象,可以理解为结果集(PHP 5 = 5.1.0, PECL pdo = 0.2.0)
源/https://www.startutorial.com/articles/view/modern-php-developer-pdo
PDO::prepare — 准备要执行的SQL语句并返回一个 PDOStatement 对象(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDOStatement::nextRowset — 在一个多行集语句句柄中推进到下一个行集(PHP 5 = 5.1.0, PECL pdo = 0.2.0)
PDOStatement::fetch — 从结果集中获取下一行(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
今天这篇文章,我们来简单的学习一下 PDO 中的预处理语句以及事务的使用,它们都是在 PDO 对象下的操作,而且并不复杂,简单的应用都能很容易地实现。只不过大部分情况下,大家都在使用框架,手写的机会非常少。
预处理语句就是准备好一个要执行的语句,然后返回一个 PDOStatement 对象。一般我们会使用 PDOStatement 对象的 execute() 方法来执行这条语句。为什么叫预处理呢?因为它可以让我们多次调用这条语句,并且可以通过占位符来替换语句中的字段条件。相比直接使用 PDO 对象的 query() 或者 exec() 来说,预处理的效率更高,它可以让客户端/服务器缓存查询和元信息。当然,更加重要的一点是,占位符的应用可以有效的防止基本的 SQL 注入攻击,我们不需要手动地给 SQL 语句添加引号,直接让预处理来解决这个问题,相信这一点是大家都学习过的知识,也是我们在面试时最常见到的问题之一。
PDOStatement::fetchObject — 获取下一行并作为一个对象返回。(PHP 5 = 5.1.0, PECL pdo = 0.2.4)
PDOStatement::execute — 执行一条预处理语句(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
PDOStatement::getColumnMeta — 返回结果集中一列的元数据(PHP 5 = 5.1.0, PECL pdo = 0.2.0)
PDOStatement::debugDumpParams — 打印一条 SQL 预处理命令(PHP 5 = 5.1.0, PECL pdo = 0.9.0)
php mysql PDO 查询操作的实例详解 <?php $dbh = new PDO('mysql:host=localhost;dbname=access_control', 'root', '
本文实例讲述了php封装的pdo数据库操作工具类与用法。分享给大家供大家参考,具体如下:
以上两个案例的区别,bindParam 中 $sex 取值,是最后赋值的 'female',而 bindValue 是执行语句时的 'male'
PDOStatement::getAttribute — 检索一个语句属性(PHP 5 = 5.1.0, PECL pdo = 0.2.0)
要说 PDO 中最强大的功能,除了为不同的数据库提供了统一的接口之外,更重要的就是它的预处理能力,也就是 PDOStatement 所提供的功能。因为它的存在,才让我们可以安心地去使用而不用操心 SQL 语句的拼接不好所带来的安全风险问题。当然,预处理也为我们提升了语句的执行效率,可以说是 PDO 的另一大杀器。
PDOStatement::execute — 执行一条预处理语句(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDOStatement::bindParam — 绑定一个参数到指定的变量名(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDOStatement::setAttribute — 设置一个语句属性(PHP 5 = 5.1.0, PECL pdo = 0.2.0)
PHP PDO——单例模式实现数据库操作 (原创内容,转载请注明来源,谢谢) 一、概述 PDO是PHP访问数据库的轻量、持久的接口,其提供一个抽象访问层。启用方法是在php.ini中把extension=php_pdo.dll的注释去掉即可。 PDO包含三个预定义类,PDO、PDOStatement、PDOException,其中PDOException是对Exception类的扩展。 下面的这些类的方法很常用,故列出来进行说明。 1)PDO PD
PDOStatement::bindValue — 把一个值绑定到一个参数(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDO(PHP Data Object)是有MySql官方封装的、基于面向对象编程思想的、使用C语言开发的数据库抽象层。
以下常量由本扩展模块定义,因此只有在本扩展的模块被编译到PHP中,或者在运行时被动态加载后才有效。
基于驱动: 1、安装扩展 php_pdo.dll 2、安装驱动 php_pdo_mysql.dll
PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
PDO::getAttribute — 取回一个数据库连接的属性(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
一般在数据库中,我们保存的都只是 int 、 varchar 类型的数据,一是因为现代的关系型数据库对于这些内容会有很多的优化,二是大部分的索引也无法施加在内容过多的字段上,比如说 text 类型的字段就很不适合创建索引。所以,我们在使用数据库时,很少会向数据库中存储很大的内容字段。但是,MySQL 其实也为我们准备了这种类型的存储,只是我们平常用得不多而已。今天我们就来学习了解一下使用 PDO 如何操作 MySQL 中的大数据对象。
PDO 是一个“数据库访问抽象层”,作用是统一各种数据库(MySQL、MSSQL、Oracle、DB2、PostgreSQL……)的访问接口,能轻松的在不同的数据库之间完成切换,使得数据库间的移植容易实现。
不支持查询操作,返回受影响的行数。数据表使用此文中的pic表:MySQL指南之SQL语句基础
PDO::setAttribute — 设置属性(PHP 5 = 5.1.0, PECL pdo = 0.1.0)
当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_real_escape_string()函数过滤用户提交的值,但是也有缺陷。而使用PHP的PDO扩展的 prepare 方法,就可以避免sql injection 风险。 PDO(PHP Data Object) 是PHP5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,如
说明:本文主要学习下Query Builder编译Fluent Api为SQL的细节和执行SQL的过程。实际上,上一篇聊到了\Illuminate\Database\Query\Builder这个非常重要的类,这个类含有三个主要的武器:MySqlConnection, MySqlGrammar, MySqlProcessor。MySqlConnection主要就是在执行SQL时做连接MySql数据库操作,MySqlProcessor主要就是用来对执行SQL后的数据集做后置处理操作,这两点已经在之前上篇聊过,那MySqlGrammar就是SQL语法编译器,用来编译Fluent Api为SQL。最后使用MySqlConnection::select(sql, bindings)执行SQL。
很多时候,因为数据统计,我们需要将数据库的数据导出到Excel等文件中,以供数据人员进行查看,如果数据集不大,其实很容易;但是如果对于大数集的导出,将要考虑各种性能的问题,这里以导出数据库一百万条数据为例,导出时间不过20秒,值得学习的一种大数据导出方式。
PHP开发过程的那些坑(四)——PDO bindParam函数 (原创内容,转载请注明来源,谢谢) 坑: bindParam是PDOStatement的一个方法,用于在PDO操作中绑定占位符的内容,进
此为默认模式。 PDO 将只简单地设置错误码,可使用PDO::errorCode()和PDO::errorInfo()方法来检查语句和数据库对象。如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的PDOStatement::errorCode()或 PDOStatement::errorInfo()方法。如果错误是由于调用数据库对象而产生的,那么可以在数据库对象上调用上述两个方法。
方法一:mysql扩展【这种方式php7已经淘汰】 方法二:mysqli扩展 方法三:PDO扩展
注意: bindParam 第2个参数 mixed &$variable 是引用传值
连接 // 数据源 $dsn='mysql:host=localhost;dbname=imooc'; // uri 形式 $dsn='uri:file://G:\path' ... $pdo=new PDO($dsn,$username,$password); var_dump($pdo); exec() 执行一条 SQL 语句,并返回其受影响的行数。对于 select 没有作用。 创建表 插入记录 更新 删除 $query=<<<EOF CREATE TABLE IF
php是世界上使用最广泛的web开发语言,是超文本预处理器,是一种通用的开源脚本语言,语法吸收了c语言,Java语言,和Perl的特点,利于学习,使用广泛,主要适用于web开发,PHP做出来的动态页面与其他的编程语言相比,PHP是将持续嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多,PHP还可以执行编译后的代码,编译后可以达到加密和优化代码的目的,让代码运行更快。
今天这篇文章的内容其实也是非常基础的内容,不过在现代化的开发中,大家都使用框架,已经很少人会去自己封装或者经常写底层的数据库操作代码了。所以这回我们就来复习一下数据库中相关扩展中的预处理语句内容。
领取专属 10元无门槛券
手把手带您无忧上云