程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP PDOStatement對象bindpram()、bindvalue()和bindcolumn之間的區別

PHP PDOStatement對象bindpram()、bindvalue()和bindcolumn之間的區別

編輯:PHP綜合

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 );
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved