首頁  >  文章  >  後端開發  >  為什麼變數和參數不符會導致 mysqli 準備語句出錯?

為什麼變數和參數不符會導致 mysqli 準備語句出錯?

Barbara Streisand
Barbara Streisand原創
2024-10-22 10:57:03172瀏覽

Why Did Mismatched Variables and Parameters Cause an Error in mysqli Prepared Statements?

mysqli: "變數數量與參數數量不符"

針對使用mysqli 準備好的語句時遇到的問題,根本原因在於準備好的語句的語法不正確。如回覆中所提到的,以下更正可以解決該問題:

$stmt = $mysqli->prepare(
    "SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model"
);
$stmt->bind_param('is', $year, $make);
$stmt->execute();

準備聲明時,用問號將輸入資料的佔位符括起來至關重要。然而,在原始語句中,make 變數的佔位符被括在引號內,使其無法被辨識為佔位符。因此,問號的數量與 bind_param() 中變數的數量不符。

因此,修正後的準備好的語句透過刪除 ? 周圍的引號消除了這種差異。佔位符,它允許使用bind_param()正確綁定輸入變數。這確保了語句可以成功執行,產生期望的結果。

以上是為什麼變數和參數不符會導致 mysqli 準備語句出錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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