首頁 >後端開發 >php教程 >如何修正MySQL多次INSERT查詢中的「無效參數號碼」錯誤?

如何修正MySQL多次INSERT查詢中的「無效參數號碼」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-12-27 12:13:10775瀏覽

How to Fix the

排查多重插入查詢中的「參數編號無效」錯誤

在準備多重插入查詢時,您可能會遇到以下錯誤:

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

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