首頁 >資料庫 >mysql教程 >為什麼 PDO 中的常數值「bindParam」會失敗?

為什麼 PDO 中的常數值「bindParam」會失敗?

Barbara Streisand
Barbara Streisand原創
2024-12-05 03:21:101016瀏覽

Why Does `bindParam` Fail with Constant Values in PDO?

PDO 中常數值的bindParam 錯誤

當嘗試使用具有常數值(例如PDO::PARAM_NULL)的bindParam 時,開發人員可能會遇到錯誤「無法透過以下方式傳遞參數2」參考。 ”

出現錯誤的程式碼片段

try {
    $dbh = new PDO('mysql:dbname=' . DB . ';host=' . HOST, USER, PASS);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
}
catch(PDOException $e)
{
    ...
}
$stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)');
$stmt->bindParam(':v1', PDO::PARAM_NULL); // --> Here's the problem

發生錯誤是因為bindParam ,並且在呼叫時不檢索值。綁定常數值的正確方法是bindValue。 (':param', null, PDO::PARAM_NULL),因為它可能不可靠。

以上是為什麼 PDO 中的常數值「bindParam」會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn