首頁 >後端開發 >php教程 >如何修復多次插入中的'SQLSTATE[HY093]:無效參數號碼”錯誤?

如何修復多次插入中的'SQLSTATE[HY093]:無效參數號碼”錯誤?

Susan Sarandon
Susan Sarandon原創
2024-12-05 06:17:12341瀏覽

How to Fix

資料庫錯誤故障排除:參數編號無效

目前的問題涉及嘗試多次插入操作時的 SQL 查詢準備錯誤。具體來說,遇到了錯誤訊息「SQLSTATE[HY093]: Invalid parameter number:parameter was not Defined」。

經調查,很明顯 $values 和 $matches 數組中的元素數量不符合匹配。這種差異是由於 $values 可能包含進入循環之前的現有值這一事實引起的。要解決此問題,必須將 $values 初始化為空數組。

此外,建議確保「雜湊」欄位應用了唯一索引。這將防止將重複值插入資料庫中。

以下是解決這些問題的修訂後的程式碼片段:

$matches = array('1');
$count = count($matches);
$values = [];
for($i = 0; $i < $count; ++$i) {
    $values[] = '(?)';
}

// INSERT INTO DATABASE
$sql = "INSERT INTO hashes (hash) VALUES " . implode(', ', $values) . " ON DUPLICATE KEY UPDATE hash=values(hash)";
$stmt = $dbh->prepare($sql);
$data = $stmt->execute($matches);

以上是如何修復多次插入中的'SQLSTATE[HY093]:無效參數號碼”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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