2012年11月29日 星期四

[php][pdo]bindParam bindValue 差別

bindParam會將一個PHP變數與SQL綁定,當變數變化時,SQL也會變動

bindValue則不會,只會執行最初綁定的值



$qq=pdo_conn();  (註1. 宣告pdo)
$result=$qq->prepare("select * from test where id=:id");
$id=1;
$result->bindParam(':id',$id,PDO::PARAM_INT);
$result->execute();
$id=2
$result->execute();
bindValue則是與變數當時的值有關,即使變動後,綁定的值也不會變動

*上面程式碼會查詢出ID為1跟2的紀錄
*但如果是用bindValue的話,則只會查詢ID為1的紀錄

註1 :
function pdo_conn(){
$hostname = "localhost";
$dbname = "(噓..)";
$username = "(噓..)";
$pw = "(噓..)";
$pdo = new PDO("mysql:host=$hostname;dbname=$dbname","$username","$pw");//PDO的連接語法
$pdo->query('SET NAMES "utf8"');
return $pdo;

}

沒有留言:

張貼留言