PDOStatement::bindParam — 綁定一個參數到指定的變量名。
綁定一個PHP變量到用作預處理的SQL語句中的對應命名占位符或問號占位符。 不同於 PDOStatement::bindValue() ,此變量作為引用被綁定,並只在 PDOStatement::execute() 被調用的時候才取其值。
PDOStatement::bindValue — 把一個值綁定到一個參數。
綁定一個值到用作預處理的 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是第二個參數只能用變量名,而不能用變量值,而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 );
?>