php pdo的用法,php pdo函数库用法详解
pdo->begintransaction() — 标明回滚起始点
pdo->commit() — 标明回滚结束点,并执行sql
pdo->__construct() — 建立一个pdo链接数据库的实例
pdo->errorcode() — 获取错误码
pdo->errorinfo() — 获取错误的信息
pdo->exec() — 处理一条sql语句,并返回所影响的条目数
pdo->getattribute() — 获取一个“数据库连接对象”的属性
pdo->getavailabledrivers() — 获取有效的pdo驱动器名称
pdo->lastinsertid() — 获取写入的最后一条数据的主键值
pdo->prepare() — 生成一个“查询对象”
pdo->query() — 处理一条sql语句,并返回一个“pdostatement”
pdo->quote() — 为某个sql中的字符串添加引号
pdo->rollback() — 执行回滚
pdo->setattribute() — 为一个“数据库连接对象”设定属性复制代码
二、pdostatement
pdostatement->bindcolumn() — bind a column to a php variable
pdostatement->bindparam() — binds a parameter to the specified variable name
pdostatement->bindvalue() — binds a value to a parameter
pdostatement->closecursor() — closes the cursor, enabling the statement to be executed again.
pdostatement->columncount() — returns the number of columns in the result set
pdostatement->errorcode() — fetch the sqlstate associated with the last operation on the statement handle
pdostatement->errorinfo() — fetch extended error information associated with the last operation on the statement handle
pdostatement->execute() — executes a prepared statement
pdostatement->fetch() — fetches the next row from a result set
pdostatement->fetchall() — returns an array containing all of the result set rows
pdostatement->fetchcolumn() — returns a single column from the next row of a result set
pdostatement->fetchobject() — fetches the next row and returns it as an object.
pdostatement->getattribute() — retrieve a statement attribute
pdostatement->getcolumnmeta() — returns metadata for a column in a result set
pdostatement->nextrowset() — advances to the next rowset in a multi-rowset statement handle
pdostatement->rowcount() — returns the number of rows affected by the last sql statement
pdostatement->setattribute() — set a statement attribute
pdostatement->setfetchmode() — set the default fetch mode for this statement复制代码
详解1) pdo中的数据库连接
$dsn = ‘mysql:dbname=ent;host=127.0.0.1′;
$user = ‘root';
$password = ‘123456′;
try {
$dbh = new pdo($dsn, $user, $password, array(pdo::attr_persistent => true));
$dbh->query('set names utf8;');
foreach ($dbh->query('select * from tpm_juese') as $row) {
print_r($row);
}
} catch (pdoexception $e) {
echo ‘connection failed: ‘ . $e->getmessage();
}复制代码
许多web应用会因为使用了向数据库的持久连接而得到优化。持久连接不会在脚本结束时关闭,
相反它会被缓存起来并在另一个脚本通过同样的标识请求一个连接时得以重新利用。
持久连接的缓存可以使你避免在脚本每次需要与数据库对话时都要部署一个新的连接的资源消耗,让你的web应用更加快速。
上面实例中的array(pdo::attr_persistent => true)就是把连接类型设置为持久连接。
详解2) pdo中的事务
pdo->begintransaction(),pdo->commit(),pdo->rollback()这三个方法是在支持回滚功能时一起使用的。
pdo->begintransaction()方法标明起始点,pdo->commit()方法标明回滚结束点,并执行sql,pdo->rollback()执行回滚。
try {
$dbh = new pdo('mysql:host=localhost;dbname=test', ‘root', ”);
$dbh->query('set names utf8;');
$dbh->setattribute(pdo::attr_errmode, pdo::errmode_exception);
$dbh->begintransaction();
$dbh->exec(”insert into `test`.`table` (`name` ,`age`)values ('mick', 22);”);
$dbh->exec(”insert into `test`.`table` (`name` ,`age`)values ('lily', 29);”);
$dbh->exec(”insert into `test`.`table` (`name` ,`age`)values ('susan', 21);”);
$dbh->commit();
} catch (exception $e) {
$dbh->rollback();
echo “failed: ” . $e->getmessage();
}
?>复制代码
现在已经通过pdo建立了连接,在部署查询之前你必须搞明白pdo是怎样管理事务的。如果你以前从未遇到过事务处理,(现在简单介绍一下:)它们提供了4个主要的特性:原子性,一致性,独立性和持久性(atomicity, consistency, isolation and durability,acid)通俗一点讲,一个事务中所有的工作在提交时,即使它是分阶段执行的,也要保证安全地应用于数据库,不被其他的连接干扰。事务工作也可以在请求发生错误时轻松地自动取消。
事务的典型运用就是通过把批量的改变“保存起来”然后立即执行。这样就会有彻底地提高更新效率的好处。换句话说,事务可以使你的脚本更快速同时可能更健壮(要实现这个优点你仍然需要正确的使用它们)。
不幸运的是,并不是每个数据库都支持事务,因此pdo需要在建立连接时运行在被认为是“自动提交”的模式下。自动提交模式意味着你执行的每个查询都有它自己隐含的事务处理,无论数据库支持事务还是因数据库不支持而不存在事务。如果你需要一个事务,你必须使用 pdo->begintransaction() 方法创建一个。如果底层驱动不支持事务处理,一个pdoexception就会被抛出(与你的异常处理设置无关,因为这总是一个严重的错误状态)。在一个事物中,你可以使用 pdo->commit() 或 pdo->rollback() 结束它,这取决于事务中代码运行是否成功。
当脚本结束时或一个连接要关闭时,如果你还有一个未处理完的事务,pdo将会自动将其回滚。这是对于脚本意外终止的情况来说是一个安全的方案——如果你没有明确地提交事务,它将会假设发生了一些错误,为了你数据的安全,所以就执行回滚了。
二、pdostatement
// 修改默认的错误显示级别
$dbh->setattribute(pdo::attr_errmode, pdo::errmode_warning);
?>复制代码
属性列表:
pdo::param_bool
表示一个布尔类型
pdo::param_null
表示一个sql中的null类型
pdo::param_int
表示一个sql中的integer类型
pdo::param_str
表示一个sql中的sql char,varchar类型
pdo::param_lob
表示一个sql中的large object类型
pdo::param_stmt
表示一个sql中的recordset类型,还没有被支持
pdo::param_input_output
specifies that the parameter is an inout parameter for a stored procedure. you must bitwise-or this value with an explicit pdo::param_* data type.
pdo::fetch_lazy
将每一行结果作为一个对象返回
pdo::fetch_assoc
仅仅返回以键值作为下标的查询的结果集,名称相同的数据只返回一个
pdo::fetch_named
仅仅返回以键值作为下标的查询的结果集,名称相同的数据以数组形式返回
pdo::fetch_num
仅仅返回以数字作为下标的查询的结果集
pdo::fetch_both
同时返回以键值和数字作为下标的查询的结果集
pdo::fetch_obj
以对象的形式返回结果集
pdo::fetch_bound
将pdostatement::bindparam()和pdostatement::bindcolumn()所绑定的值作为变量名赋值后返回
pdo::fetch_column
表示仅仅返回结果集中的某一列
pdo::fetch_class
表示以类的形式返回结果集
pdo::fetch_into
表示将数据合并入一个存在的类中进行返回
pdo::fetch_func
pdo::fetch_group
pdo::fetch_unique
pdo::fetch_key_pair
以首个键值下表,后面数字下表的形式返回结果集
pdo::fetch_classtype
pdo::fetch_serialize
表示将数据合并入一个存在的类中并序列化返回
pdo::fetch_props_late
available since php 5.2.0
pdo::attr_autocommit
在设置成true的时候,pdo会自动尝试停止接受委托,开始执行
pdo::attr_prefetch
设置应用程序提前获取的数据大小,并非所有的数据库哦度支持
pdo::attr_timeout
设置连接数据库超时的值
pdo::attr_errmode
设置error处理的模式
pdo::attr_server_version
只读属性,表示pdo连接的服务器端数据库版本
pdo::attr_client_version
只读属性,表示pdo连接的客户端pdo驱动版本
pdo::attr_server_info
只读属性,表示pdo连接的服务器的meta信息
pdo::attr_connection_status
pdo::attr_case
通过pdo::case_*中的内容对列的形式进行操作
pdo::attr_cursor_name
获取或者设定指针的名称
pdo::attr_cursor
设置指针的类型,pdo现在支持pdo::cursor_fwdonly和pdo::cursor_fwdonly
pdo::attr_driver_name
返回使用的pdo驱动的名称
pdo::attr_oracle_nulls
将返回的空字符串转换为sql的null
pdo::attr_persistent
获取一个存在的连接
pdo::attr_statement_class
pdo::attr_fetch_catalog_names
在返回的结果集中,使用自定义目录名称来代替字段名。
pdo::attr_fetch_table_names
在返回的结果集中,使用自定义表格名称来代替字段名。
pdo::attr_stringify_fetches
pdo::attr_max_column_len
pdo::attr_default_fetch_mode
available since php 5.2.0
pdo::attr_emulate_prepares
available since php 5.1.3.
pdo::errmode_silent
发生错误时不汇报任何的错误信息,是默认值
pdo::errmode_warning
发生错误时发出一条php的e_warning的信息
pdo::errmode_exception
发生错误时抛出一个pdoexception
pdo::case_natural
回复列的默认显示格式
pdo::case_lower
强制列的名字小写
pdo::case_upper
强制列的名字大写
pdo::null_natural
pdo::null_empty_string
pdo::null_to_string
pdo::fetch_ori_next
获取结果集中的下一行数据,仅在有指针功能时有效
pdo::fetch_ori_prior
获取结果集中的上一行数据,仅在有指针功能时有效
pdo::fetch_ori_first
获取结果集中的第一行数据,仅在有指针功能时有效
pdo::fetch_ori_last
获取结果集中的最后一行数据,仅在有指针功能时有效
pdo::fetch_ori_abs
获取结果集中的某一行数据,仅在有指针功能时有效
pdo::fetch_ori_rel
获取结果集中当前行后某行的数据,仅在有指针功能时有效
pdo::cursor_fwdonly
建立一个只能向后的指针操作对象
pdo::cursor_scroll
建立一个指针操作对象,传递pdo::fetch_ori_*中的内容来控制结果集
pdo::err_none (string)
设定没有错误时候的错误信息
pdo::param_evt_alloc
allocation event
pdo::param_evt_free
deallocation event
pdo::param_evt_exec_pre
event triggered prior to execution of a prepared statement.
pdo::param_evt_exec_post
event triggered subsequent to execution of a prepared statement.
pdo::param_evt_fetch_pre
event triggered prior to fetching a result from a resultset.
pdo::param_evt_fetch_post
event triggered subsequent to fetching a result from a resultset.
pdo::param_evt_normalize
event triggered during bound parameter registration allowing the driver to normalize the parameter name.
php pdo的用法,php pdo函数库用法详解相关推荐
- php bc函数库,PHP高精确度运算BC函数库实例详解
本文实例讲述了PHP高精确度运算BC函数库.分享给大家供大家参考,具体如下: /************************************************************ ...
- bc库 php,PHP高精确度运算BC函数库实例详解
/*************************************************************************************** *php BC高精确度 ...
- pythonsuper用法_python super函数使用方法详解
一.super函数简介 python内置函数super()主要用于类的多继承中,用来查找并调用父类的方法,所以在单重继承中用不用 super 都没关系:但是,使用 super() 是一个好的习惯.一般 ...
- python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...
1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...
- python获取系统时间函数_python3中datetime库,time库以及pandas中的时间函数区别与详解...
1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...
- python decode函数的用法_Oracle DECODE函数的用法详解
Oracle DECODE函数 使用方法: 1.比较大小 select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值 sign()函数根据某个值 ...
- python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理
原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...
- C语言return的用法详解,C语言函数返回值详解。 (本次转载仅供学习,感谢原创!!转发自C语言中文网,如有侵权请私信本人删除)
C语言return的用法详解,C语言函数返回值详解 转载:http://c.biancheng.net/view/1855.html 函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这 ...
- python里apply用法_Python apply函数的用法
Python apply函数的用法 发布于 2014-08-07 21:02:24 | 674 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对象.解释型计 ...
- c语言memset函数用法,C语言memset函数使用方法详解
C语言memset函数使用方法详解 一.函数原形 void * memset(void*s, int ch,size_t n) 二.函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一 ...
最新文章
- 提质升级·万祥军:中国与拉美谋定国际农民丰收节贸易会
- Linux中查看正在使用的端口并强制删除占用端口
- tensorboard 使用教程
- Linux下主DNS与辅助DNS的配置(上)
- PotPlayer安装与配置
- 支付宝手机h5网页支付不再提供「继续浏览器付款」按钮了吗
- 丰巢快递将强制收费引网友吐槽,全国第一驿站表示继续免费
- ta leader是什么岗位_干货 丨 八卦下,应届/实习生应该跟什么样的leader?
- AMD上线Linux专版驱动17.10:支持最新API接口
- Python爬取百度热榜前十条数据
- 苦劝学弟学妹们,explain一定要学明白,以后有大用途
- Oracle | 彻底的卸载干净oracle 11g
- MySQL gtid purge_MySQL中set gtid_purged的行为变更及对备份恢复的影响
- NOD32杀毒软件升级ID
- 超实用的自我规划模型 | 进击
- 简单的玻璃材质效果——UnityShader学习笔记
- 智能网联汽车风险评估方法EVITA
- 0099 MySQL02
- 画出android音乐播放器的类图,基于Qt图形框架音乐播放器的设计与实现
- 为什么要嫁给物理学3
热门文章
- 【Tableau 图表大全13】之树状图
- 抖音名字怎么改不了_抖音名字怎么改,抖音名字改不了,抖音名字已重置什么意思...
- 服务器系统登录ilo,华为服务器ILO默认地址
- PDPS软件:机器人固定点焊虚拟仿真操作方法
- python爬取股票信息_利用Python爬取网易上证所有股票数据(代码
- 一个自动化工厂有哪些必备的配置
- LSF---【bsub命令】
- 如何生成二维码?生成二维码其实很简单
- java opengl 话正方形_OpenGL绘制正方形并让其移动
- 数据结构与算法--图的广度优先搜索 (BFS)