排查多重插入查詢中的「參數編號無效」錯誤
在準備多重插入查詢時,您可能會遇到以下錯誤:
SQLSTATE[HY093]:參數編號無效:參數不是Defined
問題分析:
$values 和$matches 數組中的元素數量不符時會出現此錯誤。 insert 語句根據 $values 中的元素數量期望特定數量的參數,但 $matches 中提供的資料與此期望值不符。
解決方案:
要解決此問題,請確保 $values 和 $matches 數組具有相同數量的元素。通常,這涉及在循環之前初始化 $values 數組,以確保它不包含任何預先存在的值。
此外,資料庫表中的雜湊列應該具有唯一索引。
重構程式碼:
$matches = array('1'); $count = count($matches); $values = []; for ($i = 0; $i < $count; ++$i) { $values[] = '(?)'; } $sql = "INSERT INTO hashes (hash) VALUES " . implode(', ', $values) . " ON DUPLICATE KEY UPDATE hash=values(hash)"; $stmt = $dbh->prepare($sql); $data = $stmt->execute($matches);
遵守這些準則,您可以避免「參數號無效」錯誤並成功執行您的多次插入查詢。
以上是如何修正MySQL多次INSERT查詢中的「無效參數號碼」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!