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中文網其他相關文章!