当前位置:首页 > PHP教程 > php应用 > 列表

PHP中bindParam和bindValue的区别

发布:smiling 来源: PHP粉丝网  添加日期:2020-01-07 16:51:11 浏览: 评论:0 

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。

程序:

  1. <?php 
  2.  
  3. // 设置PDO连接  
  4.  
  5. $db = new PDO('mysql:host=localhost;dbname=phps','root','');   
  6.  
  7. // 获得用户名 
  8.  
  9. $username = 'phpforphp';  
  10.  
  11. $stmt = $db->prepare("SELECT * FROM users WHERE user = :username");  
  12.  
  13. // 使用bindParam函数 
  14.  
  15. $stmt->bindParam(':username'$username);  
  16.  
  17.  $username = 'g4g';  
  18.  
  19.  $stmt->execute();  
  20.  
  21. ?> 

注意: SQL语句将使用'g4g'作为用户名执行,因为:username在执行时搜索$ username,$ username的最后一个已知值是'g4g'。

PDOStatement :: bindValue()函数是PHP中的内置函数,用于将值绑定到参数。此函数将值绑定到SQL中用于准备语句的相应命名或问号占位符。

语法:

bool PDOStatement::bindValue( $parameter, $value, $data_type )

参数:此函数接受上述三个参数,如下所述:

$parameter:它是一个参数标识符,用于使用名称占位符准备语句。它是表单的参数名称:name。

$value:此参数用于保存绑定参数的值。

$data_type:它是使用PDO :: PARAM_ *常量的参数的显式数据类型。

返回值:此函数成功时返回True,失败时返回False。

程序:

  1. <?php    
  2.  
  3.     
  4.  
  5. // 设置PDO连接 
  6.  
  7. $db = new PDO('mysql:host=localhost;dbname=phps','root','');   
  8.  
  9.     
  10.  
  11. // 获得用户名 
  12.  
  13. $username = 'phpforphp';  
  14.  
  15.       
  16.  
  17. $stmt = $db->prepare("SELECT * FROM users WHERE user = :username");  
  18.  
  19.     
  20.  
  21. // 使用bindValue函数 
  22.  
  23. $stmt->bindValue(':username'$username);  
  24.  
  25.     
  26. //phpfensi.com 
  27. $username = 'g4g';  
  28.  
  29.       
  30.  
  31. $stmt->execute();  
  32.  
  33. ?> 

注意: SQL语句将使用'g4g'作为用户名执行,因为文字值“phpforphp”已绑定到:bindValue()函数之前的用户名。$username的进一步更改不会反映在准备好的声明中。

bindParam()和bindValue()之间的区别:

bindParam()

bindParam()函数将参数绑定到SQL语句中的命名或问号占位符。

bindParam()函数用于传递变量而不是值。

bindValue()

bindValue()函数将值绑定到SQL语句中的命名或问号。

bindValue()函数用于传递值和变量。

Tags: bindParam bindValue

分享到: