我正在尝试插入/更新项目列表及其描述符。它们是动态填充的,值通过post抓取为数组。
然而似乎它们不能以这种方式被识别为重复键?
// Inputs being used
// <input type="hidden" name="menu-id[]" value="' . $page_id . '">
// <input type="hidden" name="menu-title[]" value="' . $page_title . '">
// <input type="hidden" name="menu-permalinks[]" value="' . $page_permalink . '">
$sql = "INSERT INTO 'menu' (`position`, `nav_id`, `nav_title`, `nav_permalink`)
VALUES (?,?,?,?
ON DUPLICATE KEY
UPDATE `position`=VALUES(`position`), `nav_id`=VALUES(`nav_id`), `nav_title`=VALUES(`nav_title`), `nav_permalink`=VALUES(`nav_permalink`);";
$stmt = $conn->prepare($sql);
$stmt->bind_param("iiss", $param_pos, $param_id, $param_title, $param_permalink);
// Arrays from hidden input fields
$current_ids = $_POST['menu-id'];
$current_titles = $_POST['menu-title'];
$current_permalinks = $_POST['menu-permalinks'];
foreach ($current_ids as $key => $current_id) {
$param_pos = '';
$param_id = $current_id;
$param_title = $current_titles[$key];
$param_permalink = $current_permalinks[$key];
$stmt->execute();
}
$stmt->close();
$conn->close();
这将添加重复的记录,我只想要新的记录!
感谢任何想法。
编辑:
主键为id
并自动递增