PHPPDO库函数详解
PDO包含三个预定义的类
PDO包含三个预定义的类,这是PDO,PDOStatement,和PDOException,分别。
1。PDO
PDO ->开始()指示回滚的起点
PDO ->提交()-马克回滚的终点和执行SQL
PDO -> __construct()-建立一个PDO连接数据库实例
PDO -> errorcode()-错误代码
PDO -> ErrorInfo()得到了错误的信息
(PDO ->执行),一个SQL语句,并返回的条目的数量
PDO -> getAttribute()获取一个数据库连接对象的属性
PDO -> getavailabledrivers()-获取有效的PDO驱动名称
PDO -> lastinsertid()-被写上数据的主键值
PDO ->准备()生成一个查询对象
PDO ->查询()处理SQL语句并返回一个PDOStatement
PDO ->报价()加在一定的SQL字符串的引号
PDO ->回滚()执行回滚
PDO -> setAttribute()设置一个数据库连接对象的属性
二,PDOStatement
bindcolumn PDOStatement ->()绑定列一个PHP变量
bindparam PDOStatement ->()-绑定参数来指定变量名
PDOStatement -> bindValue()-绑定一个值赋给一个参数
closecursor PDOStatement ->()-关闭游标,使语句再次。
PDOStatement -> ColumnCount()返回的结果集的列数
PDOStatement -> errorcode()取在声明的最后操作关联的SQLSTATE
PDOStatement -> ErrorInfo()取扩展错误信息的最后操作有关
PDOStatement ->执行()执行一个事先准备好的声明
PDOStatement ->取()-获取下一行的结果集
fetchall PDOStatement ->()返回一个数组包含所有结果集的行
fetchcolumn PDOStatement ->()返回的结果下一行一列
PDOStatement -> fetchObject()-读取下一行并将它作为一个对象。
PDOStatement -> getAttribute()检索属性声明
getcolumnmeta PDOStatement ->()返回元数据为列的结果集
nextrowset PDOStatement ->()的进展,在多行语句处理下一行
PDOStatement ->行数()返回的最后一个SQL语句影响的行数
PDOStatement -> setAttribute()-设置属性声明
setfetchmode PDOStatement ->()-设置默认取本声明的方式
PDO是一个数据库抽象层,它是用来统一各种数据库访问接口。用mysql mysqli函数库相比,PDO使得跨数据库更亲和的使用。使用ADODB和MDB2相比,PDO是更有效的。目前,它是一个长期的方式实现数据库抽象层,它是一个很好的选择访问抽象层使用数据库如PDO。
PDO包含三个预定义的类
PDO包含三个预定义的类,这是PDO,PDOStatement,和PDOException,分别。
1。PDO
PDO ->开始()指示回滚的起点
PDO ->提交()-马克回滚的终点和执行SQL
PDO ->回滚()执行回滚
PDO -> __construct()-建立一个PDO连接数据库实例
PDO -> errorcode()-错误代码
PDO -> ErrorInfo()得到了错误的信息
(PDO ->执行),一个SQL语句,并返回的条目的数量
PDO -> getAttribute()获取一个数据库连接对象的属性
PDO -> getavailabledrivers()-获取有效的PDO驱动名称
PDO -> lastinsertid()-被写上数据的主键值
PDO ->准备()生成一个查询对象
PDO ->查询()处理SQL语句并返回一个PDOStatement
PDO ->报价()加在一定的SQL字符串的引号
PDO -> setAttribute()设置一个数据库连接对象的属性
详细解释1)在PDO的数据库连接
美元:北京DSN =MySQL主机= 127.0.0.1企业;
$用户root;
密码=123456;
{试
新= PDO(胸径美元美元美元美元的DSN,用户,密码,阵列(PDO::attr_persistent = >真));
$胸径->查询(让名字UTF8;');
foreach($胸径->查询('select * tpm_juese)达行){
print_r(合排);
}
赶上(PDOException,e){ }
回声连接失败。$ E -> GetMessage();
}
许多Web应用程序将被优化,因为使用了与数据库的持久连接,
相反,当另一个脚本通过相同的身份请求连接时,它将被缓存和重用。
持久缓存可以帮助您在每次与数据库交谈时避免部署新的连接资源消耗,并使Web应用程序更快。
在上面的例子中,数组(PDO::attr_persistent = >真)是连接类型设置为一个持久连接。
2详细解释)交易在PDO
三种方法,PDO ->开始()(),PDO ->提交(),和PDO ->回滚()一起使用时,支持回滚能力。PDO ->开始()方法确定起点,PDO ->提交()方法表示的回滚点,并执行SQL,PDO ->回滚()执行回滚。
< PHP
{试
$胸径=新PDO('mysql:主机为localhost;北京测试','根',');
$胸径->查询(让名字UTF8;');
$胸径-> setAttribute(PDO::::attr_errmode,PDO errmode_exception);
$胸径->开始();
$胸径-> exec(插入`测试`。`表`(`名字`,`年龄`)值('mick ',22););
$胸径-> exec(插入`测试`。`表`(`名字`,`年龄`)值('lily ',29););
$胸径-> exec(插入`测试`。`表`(`名字`,`年龄`)值('susan ',21););
$ $ >提交();
catch(异常E){ }
$ $ >回滚();
回声失败:。$ E -> GetMessage();
}
>
现在你已经通过PDO连接建立的,你必须弄清楚如何管理事务部署PDO查询前。如果你从未遇到过的交易,(现在的介绍:)他们提供4个主要特性:原子性、一致性、独立性和持久性(Atomicity,一致性,隔离性和持久性,酸)的观点通俗点,所有的工作事务提交时,即使是执行阶段,也是保证数据库应用中的安全性,不可与其他干扰。事务性的工作也可以很容易地自动取消了在请求。
事务的典型使用是保存大部分的更改并立即执行。这样一来,更新的效率就会有一个全面的提高。换句话说,事务可以使您的脚本更快更健壮(您仍然需要正确地使用它们来实现这一优势)。
不幸的是,并不是每一个数据库支持事务,那么PDO需要运行在一个被认为是自动提交模式建立连接时,自动提交模式意味着每个查询你执行有自己的隐式事务处理,无论数据库支持事务,或因为数据库不支持,如果没有交易。你需要一个交易,你必须创建一个使用PDO ->开始()方法。如果底层驱动程序不支持事务处理,一个PDOException,就会被扔出去,这是你的异常处理设置无关,因为这是一个严重的错误,在一件事上,你可以结束它PDO ->提交或回滚(PDO)->(),根据关于代码是否在事务中成功。
当脚本结束时,或者当一个连接被关闭,如果你有一个未处理的事务,PDO将自动回滚。这是剧本的意外终止的安全解决方案。如果没有显式提交事务,则会假定存在一些错误,因此可以回滚数据安全性。
二,PDOStatement
bindcolumn PDOStatement ->()绑定列一个PHP变量
bindparam PDOStatement ->()-绑定参数来指定变量名
PDOStatement -> bindValue()-绑定一个值赋给一个参数
closecursor PDOStatement ->()-关闭游标,使语句再次。
PDOStatement -> ColumnCount()返回的结果集的列数
PDOStatement -> errorcode()取在声明的最后操作关联的SQLSTATE
PDOStatement -> ErrorInfo()取扩展错误信息的最后操作有关
PDOStatement ->执行()执行一个事先准备好的声明
PDOStatement ->取()-获取下一行的结果集
PDOStatement->fetchAll () - Returns an array containing all of the result set rows
fetchcolumn PDOStatement ->()返回的结果下一行一列
PDOStatement -> fetchObject()-读取下一行并将它作为一个对象。
PDOStatement -> getAttribute()检索属性声明
getcolumnmeta PDOStatement ->()返回元数据为列的结果集
nextrowset PDOStatement ->()的进展,在多行语句处理下一行
PDOStatement ->行数()返回的最后一个SQL语句影响的行数
PDOStatement -> setAttribute()-设置属性声明
setfetchmode PDOStatement ->()-设置默认取本声明的方式
三、PDOException
PDO提供了3种不同的错误处理策略。
1。PDO::errmode_silent
这是默认的mode.pdo将在报表和数据库对象设置一个简单的错误代码,您可以使用PDO -> errorcode()和PDO -> ErrorInfo()来检查错误的方法;如果错误是由调用声明的对象,你可以使用PDOStatement ->后该对象(PDOStatement -> ErrorInfo)或()来获得错误消息的方法。如果错误是由电话引起的数据库对象,你应该利用这两种方法对数据库对象。
2。PDO::errmode_warning
作为一个除了错误代码,PDO将发出一个传统e_warning信息。这个设置是用于调试和调试,如果你只是想看看发生了什么,不想中断的过程。
三.PDO::errmode_exception
至于设置错误代码附件,PDO抛出一个PDOException异常并设置它的属性以反映错误代码和错误信息。这样的设置也在调试时很有用,因为它能有效地扩大在炸毁的脚本错误点,并指出错误的区域在您的代码很快。(记住:如果异常导致脚本被打断,事务处理是自动回滚。)
异常模式也很有用,因为结构可以使用错误处理结构,比以前使用传统PHP风格更清晰,比使用嵌套错误代码和安静模式使用更少,还可以返回一个值,更清楚地检查每个数据库访问。
有关PHP中异常的更多信息,请参见异常部分
PDO使用一种基于SQL-92 SQLSTATE错误代码字符串;特定的PDO驱动应该对应自己的代码到合适的SQLSTATE代码。PDO -> errorcode()方法返回只有一个单一的SQLSTATE代码。如果你需要一个错误更多的相关信息,PDO还提供了一个PDO -> ErrorInfo()方法,它可以返回SQLSTATE代码,一个特定的数据库驱动的错误代码和数据库驱动的错误描述字符串。
< PHP
修改默认的错误显示级别
$胸径-> setAttribute(PDO::::attr_errmode,PDO errmode_warning);
>
属性列表:
PDO::param_bool
表示布尔类型的
PDO::param_null
表示SQL中的null类型。
PDO::param_int
表示SQL中的整数类型。
PDO::param_str
代表一个sql字符串,在SQL VARCHAR类型
PDO::param_lob
表示SQL中的大对象类型
PDO::param_stmt
在一个SQL结果集类型不支持
PDO::param_input_output
指定该参数是一个输入参数的存储过程。
PDO::fetch_lazy
返回每行的结果作为对象
PDO::fetch_assoc
只返回键值为下标的查询结果集,相同的数据只返回一个。
PDO::fetch_named
只返回以键值作为下标的查询结果集,并以数组的形式返回数据的同一名称。
PDO::fetch_num
只返回查询的结果集,该编号为下标
PDO::fetch_both
以键值和数字作为下标返回查询的结果集。
PDO::fetch_obj
以对象的形式返回结果集
PDO::fetch_bound
返回值的约束bindparam PDOStatement::()和()bindcolumn PDOStatement::作为一个变量名的值
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
自PHP 5.2.0
PDO::attr_autocommit
当设置为true,PDO将自动尝试停止接受委托并开始执行
PDO::attr_prefetch
提前设置应用程序的数据大小并不是所有的数据库支持。
PDO::attr_timeout
设置连接数据库超时的值
PDO::attr_errmode
设置错误处理模式
PDO::attr_server_version
只读表示服务器的PDO连接侧数据库版本特性
PDO::attr_client_version
只读代表客户端的PDO驱动PDO连接版本特性
PDO::attr_server_info
只读表示的PDO连接服务器的元信息的属性
PDO::attr_connection_status
PDO::attr_case
PDO的内容::case_ *操作列的形式
PDO::attr_cursor_name
获取或设置指针的名称。
PDO::attr_cursor
设置指针的类型,PDO现在支持PDO::::cursor_fwdonly cursor_fwdonly和PDO
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
自PHP 5.2.0
PDO::attr_emulate_prepares
自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(字符串)
在没有错误时设置错误消息
PDO::param_evt_alloc
配置事件
PDO::param_evt_free
释放事件
PDO::param_evt_exec_pre
在准备好的语句执行前触发的事件。
PDO::param_evt_exec_post
在准备好的语句执行之后触发的事件。
PDO::param_evt_fetch_pre
事件触发从ResultSet取结果之前。
PDO::param_evt_fetch_post
事件触发从ResultSet结果随后取。
PDO::param_evt_normalize
在绑定参数注册期间触发的事件,允许驱动程序正常化