PHP PDOStatement對象bindpram()、bindvalue()和bindcolumn之間的區(qū)別
PDOStatement::bindParam — 綁定一個參數(shù)到指定的變量名。
綁定一個PHP變量到用作預處理的SQL語句中的對應命名占位符或問號占位符。 不同于 PDOStatement::bindValue() ,此變量作為引用被綁定,并只在 PDOStatement::execute() 被調用的時候才取其值。
PDOStatement::bindValue — 把一個值綁定到一個參數(shù)。
綁定一個值到用作預處理的 SQL 語句中的對應命名占位符或問號占位符。
<?php
$stm = $pdo->prepare("select * from users where user = :user");
$user = "jack";
//正確
$stm->bindParam(":user",$user);
//錯誤
$stm->bindParam(":user","jack");
//正確
$stm->bindValue(":user",$user);
//正確
$stm->bindValue(":user","jack");
//所以使用bindParam是第二個參數(shù)只能用變量名,而不能用變量值,而bindValue至可以使用具體值。
?>
PDOStatement::bindColumn — 綁定一列到一個 PHP 變量。
安排一個特定的變量綁定到一個查詢結果集中給定的列。每次調用 PDOStatement::fetch() 或 PDOStatement::fetchAll() 都將更新所有綁定到列的變量。
<?php
function readData ( $dbh ) {
$sql = 'SELECT name, colour, calories FROM fruit' ;
try {
$stmt = $dbh -> prepare ( $sql );
$stmt -> execute ();
/* 通過列號綁定 */
$stmt -> bindColumn ( 1 , $name );
$stmt -> bindColumn ( 2 , $colour );
/* 通過列名綁定 */
$stmt -> bindColumn ( 'calories' , $cals );
while ( $row = $stmt -> fetch ( PDO :: FETCH_BOUND )) {
$data = $name . "\t" . $colour . "\t" . $cals . "\n" ;
print $data ;
}
}
catch ( PDOException $e ) {
print $e -> getMessage ();
}
}
readData ( $dbh );
?>
- JDBC使用Statement修改數(shù)據(jù)庫
- Java使用PreparedStatement接口及ResultSet結果集的方法示例
- Java使用Statement接口執(zhí)行SQL語句操作實例分析
- Java數(shù)據(jù)庫連接PreparedStatement的使用詳解
- 利用JDBC的PrepareStatement打印真實SQL的方法詳解
- MyBatis綁定錯誤提示BindingException:Invalid bound statement (not found)的解決方法
- PDO預處理語句PDOStatement對象使用總結
- JDBC之PreparedStatement類中預編譯的綜合應用解析
- You must SET PASSWORD before executing this statement的解決方法
- JDBC中Statement和Preparement的使用講解
相關文章
PHP針對偽靜態(tài)的注入總結【附asp與Python相關代碼】
這篇文章主要介紹了PHP針對偽靜態(tài)的注入,結合實例形式總結分析了php針對偽靜態(tài)的常見注入情況,并附帶asp與Python的相關操作代碼,對于php程序安全有一定借鑒價值,需要的朋友可以參考下2017-08-08PHP實現(xiàn)多維數(shù)組轉字符串和多維數(shù)組轉一維數(shù)組的方法
這篇文章主要介紹了PHP實現(xiàn)多維數(shù)組轉字符串和多維數(shù)組轉一維數(shù)組的方法,以實例形式分別介紹了php數(shù)組與字符串的轉換技巧,非常簡單實用,需要的朋友可以參考下2015-08-08