search
HomeDatabaseMysql TutorialPDO--PHPDataObjects
PDO--PHPDataObjectsJun 07, 2016 pm 03:56 PM
pdoenvironmentConfiguration

PDO的环境配置:开启支持PDO 在php.ini配置文件中开启:extension=php_pdo.dllextension=php_pdo_mysql.dll在PDO操作中涉及到类:PDO、PDOStatement(预处理对象)、PDOException(异常类)一、 PDO类的构造方法:-------------------------------------------

PDO的环境配置:开启支持PDO 在php.ini配置文件中开启:
	extension=php_pdo.dll
	extension=php_pdo_mysql.dll
				
	在PDO操作中涉及到类:PDO、PDOStatement(预处理对象)、PDOException(异常类)

一、 PDO类的构造方法:
---------------------------------------------------------
  PDO __construct( string dsn 
		[, string username 
		[, string password 
		[, array driver_options]]] );
 其中:dsn数据库连接信息如“mysql:host=localhost;dbname=库名”
	  dsn的格式:”驱动名:host=主机名;dbname=库名“
      username:用户名
      password:密码
      driver_options:配置选项:
      如: PDO::ATTR_PERSISTENT=>true,是否开启持久链接
	   *PDO::ATTR_ERRMODE=>错误处理模式:(可以是以下三个)(3)
		PDO::ERRMODE_SILENT:不报错误(忽略)(0)
		PDO::ERRMODE_WARNING:以警告的方式报错(1)
		*PDO::ERRMODE_EXCEPTION:以异常的方式报错(推荐使用)。(2)

$pdo =  new PDO("mysql:host=localhost;dbname=lamp36db","root","root");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
其他方法:
--------------------------------------------------------
1. query($sql); 用于执行查询SQL语句。返回PDOStatement对象
2. exec($sql);  用于执行增、删、改操作,返回影响行数;
3. getAttribute(); 获取一个"数据库连接对象"属性。
4. setAttribute(); 设置一个"数据库连接对象"属性。
5. beginTransaction 开启一个事物(做一个回滚点)
6. commit	提交事务
7. rollBack	事务回滚操作。 
8. errorCode	获取错误码   
9. errorInfo	获取错误信息   
10.lastInsertId  获取刚刚添加的主键值。
11.prepare	创建SQL的预处理,返回PDOStatement对象
12.quote	为sql字串添加单引号。


预处理对象PDOStatement对象:
=============================================
我们可以通过PDO的方法来获取PDOStatement:
 1.PDO的query(查询sql)方法获取,用于解析结果集
 2.PDO的prepare(SQL)方法获取,用于处理参数式sql并执行操作。

PDOstatement对象的方法:
----------------------------------------------------------------
1、fetch() 返回结果集的下一行,结果指针下移,到头返回false 。
  	参数: 	PDO::FETCH_BOTH (default)、:索引加关联数组模式
	       	PDO::FETCH_ASSOC、	   :关联数组模式
 	       	PDO::FETCH_NUM、		   :索引数组模式
			PDO::FETCH_OBJ、		   :对象模式
			PDO::FETCH_LAZY		   :所有模式(SQL语句和对象)
			
2、fetchAll() 通过一次调用返回所有结果,结果是以数组形式保存
      	参数:PDO::FETCH_BOTH (default)、
		PDO::FETCH_ASSOC、
		PDO::FETCH_NUM、
		PDO::FETCH_OBJ、
		PDO::FETCH_COLUMN表示取指定某一列,
		如:$rslist = $stmt->fetchAll(PDO::FETCH_COLUMN,2);取第三列
3、execute() 	负责执行一个准备好了的预处理语句 
4. fetchColumn()返回结果集中下一行某个列的值
5. setFetchMode()设置需要结果集合的类型
6. rowCount()  	返回使用增、删、改、查操作语句后受影响的行总数
7. setAttribute()为一个预处理语句设置属性
8. getAttribute()获取一个声明的属性
9. errorCode() 	获取错误码
10. errorInfo() 获取错误信息
11. bindParam() 将参数绑定到相应的查询占位符上
    bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type [, int $length [, mixed $driver_options ]]] ) 其中: $parameter:占位符名或索引偏移量 &$variable:参数的值,需要按引用传递也就是必须放一个变量
    其中参数:$data_type:数据类型PDO::PARAM_BOOL/PDO::PARAM_NULL/PDO::PARAM_INT/PDO::PARAM_STR/
  	 				  PDO::PARAM_LOB/PDO::PARAM_STMT/PDO::PARAM_INPUT_OUTPUT
         $length:指数据类型的长度 $driver_options:驱动选项。
12. bindColumn() 用来匹配列名和一个指定的变量名,这样每次获取各行记录时,会自动将相应的值赋给变量。
13. bindValue() 将一值绑定到对应的一个参数中
14. nextRowset() 检查下一行集
15. columnCount() 在结果集中返回列的数目
16. getColumnMeta() 在结果集中返回某一列的属性信息
17. closeCursor() 关闭游标,使该声明再次执行


在PDO中参数式的SQL语句有两种(预处理sql):
   1.insert into stu(id,name) value(?,?);	//?号式(适合参数少的)		
   2.insert into stu(id,name) value(:id,:name);		// 别名式(适合参数多的)
在PDO中为参数式SQL语句赋值有三种:
   1.使用数组 
	 $stmt->execute(array("lamp1404","qq2"));
 	 $stmt->execute(array("id"=>"lamp1404","name"=>"qq2"));	
   2.使用方法单个赋值
	 $stmt->bindValue(1,"lamp1901");	
	 $stmt->bindValue(2,"qq2");
	 $stmt->execute();

	 $stmt->bindValue(":id","lamp1901",PDO::PARAM_STR);	 //带指定类型
	 $stmt->bindValue(":name","qq2",PDO::PARAM_STR);
	 $stmt->execute();
	 
   3. 使用方法绑定变量
	 $stmt->bindParam(":id",$id);		
	 $stmt->bindParam(":name",$name);
	 $id="lamp1401";
	 $name="qq2";
     $stmt->execute();
	 
事务处理
-----------------------------------------------	
	事务:将多条sql操作(增删改)作为一个操作单元,要么都成功,要么都失败。(如果一次插入多条数据,一条执行失败,数据回滚,全部删除)-----
	
4.  PDO对事务的支持
		第一:被操作的表必须是innoDB类型的表(支持事务)
			MySQL常用的表类型:MyISAM(非事务)增删改速度快、InnodB(事务型)安全性高
			//更改表的类型为innoDB类型
			mysql> alter table stu engine=innodb;
				Query OK, 29 rows affected (0.34 sec)
				Records: 29  Duplicates: 0  Warnings: 0
			//查看表结构
			mysql> show create table stu\G;   
			   
		第二:使用PDO就可以操作数据库了
				使用到了PDO中的方法:
					beginTransaction 开启一个事物(做一个回滚点)
					commit		提交事务
					rollBack	事务回滚操作。 
		
		使用情况:当做多条sql语句处理时(增删改),要求是都必须成功。


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP Fatal error: Call to undefined method PDO::prepare() in的解决方法PHP Fatal error: Call to undefined method PDO::prepare() in的解决方法Jun 22, 2023 pm 06:40 PM

PHP作为一种流行的Web开发语言,已经被使用了很长时间。PHP中集成的PDO(PHP数据对象)类是我们在开发Web应用程序过程中与数据库进行交互的一种常用方法。但是,一些PHP开发者经常遇到的问题是,当使用PDO类与数据库进行交互时,他们会收到这样的错误:PHPFatalerror:CalltoundefinedmethodPDO::prep

php如何使用PHP的PDO_PGSQL扩展?php如何使用PHP的PDO_PGSQL扩展?Jun 02, 2023 pm 06:10 PM

PHP作为一种流行的编程语言,在Web开发领域中有着广泛的应用。其中,PHP的PDO_PGSQL扩展是一种常用的PHP扩展,它提供了与PostgreSQL数据库的交互接口,可以实现PHP与PostgreSQL之间的数据传输和交互。本文将详细介绍如何使用PHP的PDO_PGSQL扩展。一、什么是PDO_PGSQL扩展?PDO_PGSQL是PHP的一个扩展库,它

PHP和PDO: 如何执行批量插入和更新PHP和PDO: 如何执行批量插入和更新Jul 28, 2023 pm 07:41 PM

PHP和PDO:如何执行批量插入和更新导言:在使用PHP编写数据库相关的应用程序时,经常会遇到需要批量插入和更新数据的情况。传统的做法是使用循环来执行多次数据库操作,但这样的方法效率较低。PHP的PDO(PHPDataObject)提供了一种更高效的方法来执行批量插入和更新操作,本文将介绍如何使用PDO来实现批量插入和更新。一、PDO简介:PDO是PH

PHP和PDO: 如何处理数据库中的JSON数据PHP和PDO: 如何处理数据库中的JSON数据Jul 29, 2023 pm 05:17 PM

PHP和PDO:如何处理数据库中的JSON数据在现代web开发中,处理和存储大量数据是一个非常重要的任务。随着移动应用和云计算的普及,越来越多的数据以JSON(JavaScriptObjectNotation)格式存储在数据库中。PHP作为一种常用的服务器端语言,它的PDO(PHPDataObject)扩展提供了一种方便的方式来处理和操作数据库。本

PHP和PDO: 如何进行分页查询和显示数据PHP和PDO: 如何进行分页查询和显示数据Jul 29, 2023 pm 04:10 PM

PHP和PDO:如何进行分页查询和显示数据在开发Web应用程序时,分页查询和显示数据是一个非常常见的需求。通过分页,我们可以一次显示一定数量的数据,提高页面加载速度和用户体验。在PHP中,使用PHP数据对象(PDO)库可以轻松实现分页查询和显示数据的功能。本文将介绍如何在PHP中使用PDO进行分页查询和显示数据,并提供相应的代码示例。一、创建数据库和数据表

PHP和PDO: 如何执行数据库备份和还原操作PHP和PDO: 如何执行数据库备份和还原操作Jul 29, 2023 pm 06:54 PM

PHP和PDO:如何执行数据库备份和还原操作在开发Web应用程序时,数据库的备份和还原是非常重要的任务。PHP作为一门流行的服务器端脚本语言,提供了丰富的库和扩展,其中PDO(PHP数据对象)是一款强大的数据库访问抽象层。本文将介绍如何使用PHP和PDO来执行数据库备份和还原操作。第一步:连接数据库在实际操作之前,我们需要建立与数据库的连接。使用PDO对

如何使用PDO连接到Redis数据库如何使用PDO连接到Redis数据库Jul 28, 2023 pm 04:29 PM

如何使用PDO连接到Redis数据库Redis是一个开源的高性能、内存存储的键值数据库,常用于缓存、队列等场景。在PHP开发中,使用Redis可以有效提升应用的性能和稳定性。而通过PDO(PHPDataObjects)扩展,我们可以更方便地连接和操作Redis数据库。本文将介绍如何使用PDO连接到Redis数据库,并附带代码示例。安装Redis扩展在开始

使用PDO进行数据库操作:PHP的一个更好的方式使用PDO进行数据库操作:PHP的一个更好的方式Jun 21, 2023 pm 01:36 PM

使用PDO进行数据库操作:PHP的一个更好的方式在Web开发中,使用数据库进行数据存储、管理和查询是非常常见的。而PHP作为一种广泛应用于Web开发的语言,自然也提供了丰富的数据库操作方式。在PHP中,可以使用MySQLi、PDO以及其他扩展库来进行数据库操作。其中,PDO是一种非常常用的数据库操作方式,相比于其他方式有更多的优点。本文将介绍什么是PDO,以

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment