数码资讯
PDOPDOStatement对象用法总结预处理语句
PDO支持预处理语句需要使用PDOStatement类对象,但对象不是用new关键字实例化,但通过PDO对象(准备)在数据库服务器准备预处理SQL语句直接返回的方法。如果查询返回的对象()PDOStatement类在PDO对象方法执行之前,只有一个结果集对象表示。如果我们执行生成的准备PDOStat
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
PDO支持预处理语句需要使用PDOStatement类对象,但对象不是用new关键字实例化,但通过PDO对象(准备)在数据库服务器准备预处理SQL语句直接返回的方法。如果查询返回的对象()PDOStatement类在PDO对象方法执行之前,只有一个结果集对象表示。如果我们执行生成的准备PDOStatement类对象(PDO)中的对象的方法,我们可以定义和执行参数化SQL命令查询对象。在整个PDOStatement类会员的方法如下:
复制代码代码如下所示:
::bindcolumn PDOStatement绑定列一个PHP变量
bindparam PDOStatement::结合一个参数来指定变量名
PDOStatement::bindValue绑定值参数
::closecursor PDOStatement关闭游标,可再次执行语句。
::PDOStatement ColumnCount -列数,返回的结果集
debugdumpparams PDOStatement::打印一个SQL预处理命令
::.ErrorCode PDOStatement让SQLSTATE到的最后一个语句处理处理相关
PDOStatement::得到延伸ErrorInfo错误信息的处理语句的处理相关
::一个PDOStatement执行预处理语句的执行
::取PDOStatement获得线下从结果集
fetchall PDOStatement::返回的结果集中包含的所有行的数组
fetchcolumn PDOStatement::从结果集的下一行返回一个单独的列。
::fetchObject PDOStatement得到下一行并返回它作为一个对象。
::PDOStatement getAttribute检索属性声明
::getcolumnmeta PDOStatement返回结果中的一列的元数据
nextrowset PDOStatement::-推进到在多行语句处理行下集
::行-返回PDOStatement由以前的SQL语句影响的行数
::将集PDOStatement属性声明
setfetchmode PDOStatement::设置默认的采集模式的声明。
1。制备的声明
重复一个SQL查询和每次迭代中使用不同的参数,使用预处理语句的运行效率最高,使用预处理语句,你首先需要准备数据库服务器的SQL语句,而不需要执行immediately.pdo支持占位符语法绑定变量预处理SQL语句的使用。一准备好的SQL语句,如果我们要在执行每一次改变一些列的值,我们必须用特定的列值的占位符符号。有两种在PDO占位符语法:命名参数和问号的参数,其语法是用来看个人喜好。
使用命名参数作为占位符的INSERT INSERT语句:
复制代码代码如下所示:
$胸径->准备(插入(姓名,地址,电话contactinfo)值(姓名,地址,电话));
一个自定义字符串作为命名参数,每个命名参数(:),冒号命名参数必须是有意义的,以及对应于同名的最佳字段。
将问题()参数用作占位符的INSERT INSERT语句:
复制代码代码如下所示:
$胸径->准备(插入(姓名,地址,电话contactinfo)值(,));
马克参数必须符合该领域的位置顺序的问题。无论哪个参数作为一个占位符或占位符是不能用在句中,我们需要使用准备()方法在PDO对象编写的查询将用于迭代执行,并返回PDOStatement类对象。
2。结合参数
当SQL语句准备通过编制()在数据库服务器端的PDO对象的方法,如果你使用占位符,您需要更换在每个执行的输入参数,参数变量可以被绑定到准备好的占位符(位置或名称对应)的bindparam()在PDOStatement对象方法。方法bindparame原型()如下:
复制代码代码如下所示:
布尔PDOStatement::(美元bindparam混合参数,混合变量$ { int,data_type美元= PDO::param_str { int,$长度{混合,driver_options } } }美元)
第一个参数参数是必要的选项。如果在准备查询占位符语法使用name参数,名称参数字符串作为第一个参数的bindparam()方法。如果占位符语法使用问题的参数,在准备查询的列值的占位符抵消指数作为方法的第一个参数。
第二个参数,变量,也是提供第一个参数指定占位符的选项。因为参数是通过引用传递的,所以变量只能作为参数提供,并且不能直接提供值。
第三个参数是一个选项data_type当前绑定的参数设置数据类型。它可以是以下值。
PDO::param_bool代表布尔数据类型。
PDO::param_null代表SQL语言中的空值类型。
PDO::param_int代表SQL整数数据类型。
PDO::param_str代表char、varchar、和SQL中的其他字符串数据类型。
PDO::param_lob代表SQL中的大型对象数据类型。
第四参数长度是可选的,用于指定数据类型的长度。
第五个参数是一个选项,driver_options通过此参数为数据库驱动程序的任何特定的选项。
使用命名参数作为占位符的参数绑定示例:
复制代码代码如下所示:
< PHP
PDO连接数据库代码 / /…
为查询=插入(姓名,地址,电话contactinfo)值(:姓名,地址,电话);
美元美元支撑=胸径->准备($查询); / / PDO对象调用方法(准备)
支撑美元-> blinparam(':名字,$name); / / $变量名引用绑定到查询参数的名称好名字
支撑美元-> blinparam(地址,地址:美元);
支撑美元-> blinparam(':手机、电话);
…
>
Use the question mark ()参数绑定作为占位符的一个示例:
复制代码代码如下所示:
< PHP
PDO连接数据库代码 / /…
为查询=插入(姓名,地址,电话contactinfo)值(,,);
美元美元支撑=胸径->准备($查询); / / PDO对象调用方法(准备)
支撑美元-> blinparam(1,$名,PDO:,param_str); / / $变量名引用绑定到查询参数的名称好名字
支撑美元-> blinparam(2,$地址,PDO::param_str);
支撑美元-> blinparam(3,电话::param_str PDO,20);
…
>
三.执行准备声明
当准备好陈述完毕,并进行了相应的参数约束,执行()的类对象方法PDOStatement可以执行多次执行该语句准备在数据库缓冲区。在下面的例子中,我们使用预处理的方式执行的INSERT语句中提供连续的CONTACTINFO表之前,和通过改变不同的参数,如下图所示,添加两个记录:
复制代码代码如下所示:
< PHP
{试
$胸径=新PDO('mysql:北京库;主机为localhost美元美元,用户名,口令);
} catch(PDOException,e){
回声的数据库连接失败:' $ E -> GetMessage();
出口;
}
为查询=插入(姓名,地址,电话contactinfo)值(,,);
美元美元支撑=胸径->准备($查询);
支撑美元-> blinparam(1,$的名字);
支撑美元-> blinparam(2,$地址);
支撑美元-> blinparam(3电话);
美元=赵谋;
地址中关村,海淀区;
$15801688348;
(美元支撑->执行); / /执行参数声明绑定后
>
如果你只是想通过输入参数,并有许多这样的参数传递,你会觉得下面的快捷方式的语法是很有帮助的。在执行提供一个可选的参数()方法的参数是一个由在制备的命名查询参数占位符的阵列,这是更换输入参数预处理的查询执行的第二种方式。这种语法允许你保存调用语句美元-> bindparam()。让下面的上面的例子修改:
复制代码代码如下所示:
< PHP
PDO连接数据库代码 / /…
为查询=插入(姓名,地址,电话contactinfo)值(,,);
美元美元支撑=胸径->准备($查询);
传递一个数组,用于在查询绑定中命名参数值的预处理,并执行a。
支撑美元->执行(array(赵牟和牟
>
此外,如果INSERT语句执行和ID字段在数据表的自动增长,我们可以用lastinsertid()方法在PDO对象中的数据表得到最后的记录ID。如果你需要看是否有其他DML语句都是成功的,你可以得到影响记录通过该行的行数()在PDOStatement类对象的方法。
复制代码代码如下所示:
::bindcolumn PDOStatement绑定列一个PHP变量
bindparam PDOStatement::结合一个参数来指定变量名
PDOStatement::bindValue绑定值参数
::closecursor PDOStatement关闭游标,可再次执行语句。
::PDOStatement ColumnCount -列数,返回的结果集
debugdumpparams PDOStatement::打印一个SQL预处理命令
::.ErrorCode PDOStatement让SQLSTATE到的最后一个语句处理处理相关
PDOStatement::得到延伸ErrorInfo错误信息的处理语句的处理相关
::一个PDOStatement执行预处理语句的执行
::取PDOStatement获得线下从结果集
fetchall PDOStatement::返回的结果集中包含的所有行的数组
fetchcolumn PDOStatement::从结果集的下一行返回一个单独的列。
::fetchObject PDOStatement得到下一行并返回它作为一个对象。
::PDOStatement getAttribute检索属性声明
::getcolumnmeta PDOStatement返回结果中的一列的元数据
nextrowset PDOStatement::-推进到在多行语句处理行下集
::行-返回PDOStatement由以前的SQL语句影响的行数
::将集PDOStatement属性声明
setfetchmode PDOStatement::设置默认的采集模式的声明。
1。制备的声明
重复一个SQL查询和每次迭代中使用不同的参数,使用预处理语句的运行效率最高,使用预处理语句,你首先需要准备数据库服务器的SQL语句,而不需要执行immediately.pdo支持占位符语法绑定变量预处理SQL语句的使用。一准备好的SQL语句,如果我们要在执行每一次改变一些列的值,我们必须用特定的列值的占位符符号。有两种在PDO占位符语法:命名参数和问号的参数,其语法是用来看个人喜好。
使用命名参数作为占位符的INSERT INSERT语句:
复制代码代码如下所示:
$胸径->准备(插入(姓名,地址,电话contactinfo)值(姓名,地址,电话));
一个自定义字符串作为命名参数,每个命名参数(:),冒号命名参数必须是有意义的,以及对应于同名的最佳字段。
将问题()参数用作占位符的INSERT INSERT语句:
复制代码代码如下所示:
$胸径->准备(插入(姓名,地址,电话contactinfo)值(,));
马克参数必须符合该领域的位置顺序的问题。无论哪个参数作为一个占位符或占位符是不能用在句中,我们需要使用准备()方法在PDO对象编写的查询将用于迭代执行,并返回PDOStatement类对象。
2。结合参数
当SQL语句准备通过编制()在数据库服务器端的PDO对象的方法,如果你使用占位符,您需要更换在每个执行的输入参数,参数变量可以被绑定到准备好的占位符(位置或名称对应)的bindparam()在PDOStatement对象方法。方法bindparame原型()如下:
复制代码代码如下所示:
布尔PDOStatement::(美元bindparam混合参数,混合变量$ { int,data_type美元= PDO::param_str { int,$长度{混合,driver_options } } }美元)
第一个参数参数是必要的选项。如果在准备查询占位符语法使用name参数,名称参数字符串作为第一个参数的bindparam()方法。如果占位符语法使用问题的参数,在准备查询的列值的占位符抵消指数作为方法的第一个参数。
第二个参数,变量,也是提供第一个参数指定占位符的选项。因为参数是通过引用传递的,所以变量只能作为参数提供,并且不能直接提供值。
第三个参数是一个选项data_type当前绑定的参数设置数据类型。它可以是以下值。
PDO::param_bool代表布尔数据类型。
PDO::param_null代表SQL语言中的空值类型。
PDO::param_int代表SQL整数数据类型。
PDO::param_str代表char、varchar、和SQL中的其他字符串数据类型。
PDO::param_lob代表SQL中的大型对象数据类型。
第四参数长度是可选的,用于指定数据类型的长度。
第五个参数是一个选项,driver_options通过此参数为数据库驱动程序的任何特定的选项。
使用命名参数作为占位符的参数绑定示例:
复制代码代码如下所示:
< PHP
PDO连接数据库代码 / /…
为查询=插入(姓名,地址,电话contactinfo)值(:姓名,地址,电话);
美元美元支撑=胸径->准备($查询); / / PDO对象调用方法(准备)
支撑美元-> blinparam(':名字,$name); / / $变量名引用绑定到查询参数的名称好名字
支撑美元-> blinparam(地址,地址:美元);
支撑美元-> blinparam(':手机、电话);
…
>
Use the question mark ()参数绑定作为占位符的一个示例:
复制代码代码如下所示:
< PHP
PDO连接数据库代码 / /…
为查询=插入(姓名,地址,电话contactinfo)值(,,);
美元美元支撑=胸径->准备($查询); / / PDO对象调用方法(准备)
支撑美元-> blinparam(1,$名,PDO:,param_str); / / $变量名引用绑定到查询参数的名称好名字
支撑美元-> blinparam(2,$地址,PDO::param_str);
支撑美元-> blinparam(3,电话::param_str PDO,20);
…
>
三.执行准备声明
当准备好陈述完毕,并进行了相应的参数约束,执行()的类对象方法PDOStatement可以执行多次执行该语句准备在数据库缓冲区。在下面的例子中,我们使用预处理的方式执行的INSERT语句中提供连续的CONTACTINFO表之前,和通过改变不同的参数,如下图所示,添加两个记录:
复制代码代码如下所示:
< PHP
{试
$胸径=新PDO('mysql:北京库;主机为localhost美元美元,用户名,口令);
} catch(PDOException,e){
回声的数据库连接失败:' $ E -> GetMessage();
出口;
}
为查询=插入(姓名,地址,电话contactinfo)值(,,);
美元美元支撑=胸径->准备($查询);
支撑美元-> blinparam(1,$的名字);
支撑美元-> blinparam(2,$地址);
支撑美元-> blinparam(3电话);
美元=赵谋;
地址中关村,海淀区;
$15801688348;
(美元支撑->执行); / /执行参数声明绑定后
>
如果你只是想通过输入参数,并有许多这样的参数传递,你会觉得下面的快捷方式的语法是很有帮助的。在执行提供一个可选的参数()方法的参数是一个由在制备的命名查询参数占位符的阵列,这是更换输入参数预处理的查询执行的第二种方式。这种语法允许你保存调用语句美元-> bindparam()。让下面的上面的例子修改:
复制代码代码如下所示:
< PHP
PDO连接数据库代码 / /…
为查询=插入(姓名,地址,电话contactinfo)值(,,);
美元美元支撑=胸径->准备($查询);
传递一个数组,用于在查询绑定中命名参数值的预处理,并执行a。
支撑美元->执行(array(赵牟和牟
>
此外,如果INSERT语句执行和ID字段在数据表的自动增长,我们可以用lastinsertid()方法在PDO对象中的数据表得到最后的记录ID。如果你需要看是否有其他DML语句都是成功的,你可以得到影响记录通过该行的行数()在PDOStatement类对象的方法。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。