PDOStatement::bindParam() 函数
PDOStatement::bindParam()
函数是 PHP 中的一个内置函数,用于将参数绑定到指定的变量名。 此函数绑定变量,将它们的值作为输入传递,并接收其关联参数标记的输出值(如果有)。
语法:
bool PDOStatement::bindParam ( $parameter, $variable, $data_type, $length, $driver_options )
参数:该函数接受上面提到的五个参数,如下所述:
$parameter
:它是一个参数标识符,用于使用名称占位符准备语句。 它是形式的参数名称:name
。$variable
:此参数用于保存要绑定到 SQL 语句参数的变量的名称。$data_type
:它是使用PDO::PARAM_*
常量的参数的显式数据类型。$length
: 此参数用于保存数据类型的长度。$driver_options
:此参数保存需要执行的操作。
返回值:此函数在成功时返回 True
,在失败时返回 False
。
程序:
<?php // setup PDO connection $db = new PDO('mysql:host=localhost;dbname=yiibaidb','root',''); // Get username $username = 'geesforgeeks'; $stmt = $db->prepare("SELECT * FROM users WHERE user = :username"); // Use bindParam function $stmt->bindParam(':username', $username); $username = 'yiibai'; $stmt->execute(); ?>
注意:SQL 语句将使用
yiibai
作为用户名执行,因为:username
在执行时会搜索$username
,而$username
的最后一个已知值是yiibai
。
PDOStatement::bindValue()
函数PDOStatement::bindValue()
函数是 PHP 中的一个内置函数,用于将值绑定到参数。 此函数将值绑定到用于准备语句的 SQL 中相应的命名或问号占位符。
语法:
bool PDOStatement::bindValue( $parameter, $value, $data_type )
参数 :此函数接受三个参数,如上所述,如下所述:
$parameter
:它是一个参数标识符,用于使用名称占位符准备语句。它是form:name
的参数名称。$value
:该参数用于保存绑定参数的值。$data_type
:它是使用 PDO::PARAM_* 常量的参数的显式数据类型。
返回值 :此函数在成功时返回 True,在失败时返回 False。
程序 :
<?php // setup PDO connection $db = new PDO('mysql:host=localhost;dbname=yiibaidb','root',''); // Get username $username = 'yiibai.com'; $stmt = $db->prepare("SELECT * FROM users WHERE user = :username"); // Use bindValue function $stmt->bindValue(':username', $username); $username = 'yiibai'; $stmt->execute(); ?>
注意 :SQL 语句将使用yiibai.com
作为用户名执行,因为字面值yiibai.com
在 bindValue()
函数之前已绑定到用户名。 对 $username
的进一步更改不会反映在准备好的语句中。bindParam()
和 bindValue()
的区别:
1、bindParam()
bindParam()
函数将参数绑定到 SQL 语句中的命名或问号占位符。bindParam()
函数用于传递变量而不是值。bindParam()
函数在运行时执行。bindParam()
是一个 PHP 内置函数。- 参数可以在
bindParam()
中修改。 - 它的返回值是布尔类型。
1、bindValue()
bindValue()
函数将值绑定到 SQL 语句中的命名或问号。bindValue()
函数用于传递值和变量。bindValue()
函数在编译时执行。bindValue()
是一个内置的 PHP 函数- 在
bindValue()
中不能修改参数。 - 它的返回值是布尔类型。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264221.html