PHP中bindParam()和bindValue()的区别

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.combindValue() 函数之前已绑定到用户名。 对 $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

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论