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() 之間的區別:
- bindParam():
- bindParam() 函數綁定一個參數SQL 語句中的命名占位符或問號占位符。
- bindParam()函數用於傳遞變量而不是值.
- bindParam() 函數在運行時執行。
- bindParam 是 PHP inbuilt function 。
- 參數可以在bindParam()中修改。
- 它的返回值是boolean類型。
- bindValue():
- bindValue() 函數綁定一個值SQL 語句中的命名或問號。
- bindValue() 函數用於同時傳遞值和變量.
- bindValue 函數在編譯時執行。
- bindValue() 是一個內置的 PHP 函數
- bindValue()中的參數無法修改。
- 它的返回值是boolean類型。
相關用法
- PHP bindec()用法及代碼示例
- PHP bin2hex()用法及代碼示例
- PHP base_convert()用法及代碼示例
- PHP basename()用法及代碼示例
- PHP base64_decode()用法及代碼示例
- PHP base64_encode()用法及代碼示例
- PHP bcadd()用法及代碼示例
- PHP bccomp()用法及代碼示例
- PHP bcdiv()用法及代碼示例
- PHP bcmod()用法及代碼示例
- PHP bcmul()用法及代碼示例
- PHP bcpow()用法及代碼示例
- PHP bcpowmod()用法及代碼示例
- PHP bcscale()用法及代碼示例
- PHP bcsqrt()用法及代碼示例
- PHP bcsub()用法及代碼示例
- PHP boolval()用法及代碼示例
- PHP break和continue的區別用法及代碼示例
- PHP Hebrev()用法及代碼示例
- PHP Max()用法及代碼示例
- PHP String htmlspecialchars()用法及代碼示例
- PHP String htmlspecialchars_decode()用法及代碼示例
- PHP String localeconv()用法及代碼示例
- PHP String nl2br()用法及代碼示例
- PHP String nl_langinfo()用法及代碼示例
注:本文由純淨天空篩選整理自Samdare B大神的英文原創作品 Difference between bindParam and bindValue in PHP。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。