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 // 设置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。
程式:
<?php // 设置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的差別介紹,希望對需要的朋友有幫助!
以上是PHP中bindParam和bindValue的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!