資料載入中

胡言亂語

PDO bindParam 和 bindValue 差別在哪裡

首先 bindParam 是綁定變數、bindValue  是綁定值。
以下範例:
bindParam
<?php
try {
$dbh = new PDO("mysql:host=localhost;dbname=test", "root", "");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->prepare("SELECT * FROM tablename WHERE number = ?");
$stmt->bindParam(1, $test_value, PDO::PARAM_INT);
$test_value = 888;
$stmt->execute();
print_r($stmt->fetchAll());
} catch(PDOException $e) {
echo $e->getMessage();
}
?>

執行正常。

bindValue
<?php
try {
$dbh = new PDO("mysql:host=localhost;dbname=test", "root", "");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->prepare("SELECT * FROM tablename WHERE number = ?");
$stmt->bindValue(1, $test_value, PDO::PARAM_INT);
$test_value = 888;
$stmt->execute();
print_r($stmt->fetchAll());
} catch(PDOException $e) {
echo $e->getMessage();
}
?>

輸出:Notice: Undefined variable: test_value

以上紀錄。
 

  • bindParam 與 bindValue 的差異
  • 綁定變數與綁定值的使用
  • PHP 變數綁定範例
  • 如何處理未定義變數錯誤
  • 綁定參數在 PHP 中的應用
https://innstory.com/story-PDObindParam和bindValue差別在哪裡-2375

上一篇
 codeing像極了愛情

下一篇
要如何知道ajax執行失敗原因 

發表留言

  • Jack

    文章提到的 bindParam 和 bindValue 的區別還挺有意思的,這樣的細節在寫程式時常常會影響結果。這對於調試確實很重要。
    2026-08-31 下午 8 點回覆

作者簡介

離不開電腦的宅男


推薦閱讀

作者其他相關類別故事

在PHP中如何將NAN轉換為0

在PHP中如何將NAN轉換為…

Mark Chang 5 年又 261 天 1.1K

首先我會得到NAN是因為我有一個計算結果為0的值然後我讓他除以0,結果就得到了NAN 首先甚麼是N...

Fatal error Allowed memory size of 50331648 bytes exhausted tried to allocate 12288 bytes in

Fatal error Al…

Mark Chang 5 年又 96 天 2K

今天在客戶的網站系統上發現了一個問題。 在上傳檔案時發生了一個錯誤: 錯誤的原因: 因為php頁...

PHP重新排列陣列中的元素shuffle函數

PHP重新排列陣列中的元素s…

Mark Chang 4 年又 184 天 1.5K

shuffle() 是可以將陣列中元素的順序重新洗牌的函數。 甚麼時候用的到? 例如最近寫著一個...