sql 问号的使用 php_PHP中bindParam和bindValue的区别
點擊藍字關注我們!每天獲取最新的編程小知識!
源 /?php中文網? ????源 /?www.php.cn
PHP中bindParam和bindValue的區別
(查看原文請點擊本文末尾左下角:
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。
程序:
// 設置PDO連接
$db = new PDO('mysql:host=localhost;dbname=phps','root','');?
// 獲得用戶名
$username = 'phpforphp';
$stmt = $db->prepare("SELECT * FROM users WHERE user = :username");
// 使用bindParam函數
$stmt->bindParam(':username', $username);
?$username = 'g4g';
?$stmt->execute();
?>
注意: 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。
程序:
// 設置PDO連接
$db = new PDO('mysql:host=localhost;dbname=phps','root','');?
// 獲得用戶名
$username = 'phpforphp';
$stmt = $db->prepare("SELECT * FROM users WHERE user = :username");
// 使用bindValue函數
$stmt->bindValue(':username', $username);
$username = 'g4g';
$stmt->execute();
?>
注意:?
SQL語句將使用'g4g'作為用戶名執行,因為文字值“phpforphp”已綁定到:bindValue()函數之前的用戶名。$username的進一步更改不會反映在準備好的聲明中。
bindParam()和bindValue()之間的區別:
bindParam()
bindParam()函數將參數綁定到SQL語句中的命名或問號占位符。
bindParam()函數用于傳遞變量而不是值。
bindValue()
bindValue()函數將值綁定到SQL語句中的命名或問號。
bindValue()函數用于傳遞值和變量。
推薦:《PHP教程》
http://www.php.cn/course/list/29.html
本篇文章就是關于PHP中bindParam和bindValue的區別介紹,希望對需要的朋友有所幫助!
-END-
聲明:本文選自「?php中文網?」,搜索「 phpcnnew 」即可關注!
總結
以上是生活随笔為你收集整理的sql 问号的使用 php_PHP中bindParam和bindValue的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中天金融是国企吗
- 下一篇: 支付宝绍兴消费券怎么领