当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP bindParam和bindValue的区别用法及代码示例


PDO语句::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


<?php
// setup PDO connection
$db = new PDO('mysql:host=localhost;dbname=geeks','root','');
// Get username
$username = 'geeksforgeeks';
     
$stmt = $db->prepare("SELECT * FROM users WHERE user = :username");
// Use bindParam function
$stmt->bindParam(':username', $username);
$username = 'g4g';
     
$stmt->execute();
?>

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

PDO语句::bindValue()函数

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

用法:

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

参数:该函数接受如上所述和如下所述的三个参数:

  • $parameter:它是一个参数标识符,用于使用名称占位符准备语句。它是形如:name 的参数名称。
  • $value:该参数用于保存绑定参数的值。
  • $data_type:它是使用 PDO::PARAM_* 常量的参数的显式数据类型。

返回值:该函数成功时返回 True,失败时返回 False。
程序:

php


<?php
// setup PDO connection
$db = new PDO('mysql:host=localhost;dbname=geeks','root','');
// Get username
$username = 'geeksforgeeks';
     
$stmt = $db->prepare("SELECT * FROM users WHERE user = :username");
// Use bindValue function
$stmt->bindValue(':username', $username);
$username = 'g4g';
     
$stmt->execute();
?>

注意:SQL 语句将使用‘geeksforgeeks’ 作为用户名执行,因为文字值“geeksforgeeks” 已在bindValue() 函数之前绑定到用户名。对 $username 的进一步更改将不会反映在准备好的语句中。
bindParam() 和 bindValue() 之间的区别:

  1. bindParam():
    1. bindParam() 函数绑定一个参数SQL 语句中的命名占位符或问号占位符。
    2. bindParam()函数用于传递变量而不是值.
    3. bindParam() 函数在运行时执行。
    4. bindParam 是 PHP inbuilt function
    5. 参数可以在bindParam()中修改。
    6. 它的返回值是boolean类型。
  2. bindValue():
    1. bindValue() 函数绑定一个值SQL 语句中的命名或问号。
    2. bindValue() 函数用于同时传递值和变量.
    3. bindValue 函数在编译时执行。
    4. bindValue() 是一个内置的 PHP 函数
    5. bindValue()中的参数无法修改。
    6. 它的返回值是boolean类型。


相关用法


注:本文由纯净天空筛选整理自Samdare B大神的英文原创作品 Difference between bindParam and bindValue in PHP。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。