嘗試在資料庫表中插入多筆記錄時,您可能會遇到「參數編號無效:參數未定義” 錯誤。當查詢中指定的參數數量與作為輸入提供的值的數量不符時,就會發生這種情況。
在提供的程式碼片段中:
$matches = array('1'); $count = count($matches); for($i = 0; $i < $count; ++$i) { $values[] = '(?)'; } // Build query $q = $this->dbc->prepare("INSERT INTO hashes (hash) VALUES " . implode(', ', $values) . " ON DUPLICATE KEY UPDATE hash = hash"); $q->execute($matches);
目標是使用準備好的語句將 $matches 中的值插入雜湊表中。但是,由於 $values 數組中的佔位符參數 (?) 數量與 $matches 中的實際資料不對應而出現錯誤。
要解決此問題,請確保以下:
$matches = array('1'); $values = []; $count = count($matches); for($i = 0; $i < $count; ++$i) { $values[] = '(?)'; } // Insert query with named parameters (:hash) $sql = "INSERT INTO hashes (hash) VALUES (:hash) ON DUPLICATE KEY UPDATE hash = VALUES(:hash)"; $stmt = $dbh->prepare($sql); $data = $stmt->execute([':hash' => $matches]);
以上是為什麼我的多重插入查詢會傳回「無效參數號碼」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!