多重插入查詢中出現意外錯誤
程式碼片段嘗試準備並執行 SQL 查詢以將多個值插入表中。但是,執行失敗,並出現錯誤「SQLSTATE[HY093]:參數編號無效:參數未定義。」
錯誤原因
發生錯誤的原因是$values數組中的元素數量與$matches 數組中的元素數量不符。 SQL 查詢需要特定數量的參數,但 PHP 程式碼提供了不同的數量。
解決方案
要解決該錯誤,請確保 $values 和 $匹配數組包含相同數量的元素。這可以透過在循環之前初始化 $values 數組來實現。
此外,建議檢查雜湊是否具有唯一索引。如果沒有,ON DUPLICATE KEY UPDATE 子句可能無法如預期運作。
修訂的代碼
$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);
以上是為什麼我的多個 SQL INSERT 查詢失敗並顯示'SQLSTATE[HY093]:參數編號無效”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!