首页 > 解决方案 > 防止 PHP MySQL 中的重复条目

问题描述

我的 PHP 中有以下内容。

$stmt = $conn->prepare("INSERT IGNORE INTO savesearch (user, searchedFor, sortOrder, buildURLString, aspectFilters, oneSignalId, totalEntries)
  VALUES (?, ?, ?, ?, ?, ?, ?)");
  $stmt->bind_param("sssssss", $user, $searchedFor, $sortOrder, $buildURLString, $aspectFilters, $oneSignalId, $totalEntries);

  // set parameters and execute
  $user = $_POST['user'];
  $searchedFor = $_POST["searchedFor"];
  $sortOrder = $_POST["sortOrder"];
  $buildURLString = $_POST["buildURLString"];
  $aspectFilters = $_POST["aspectFilters"];
  $oneSignalId = $_POST["oneSignalId"];
  $totalEntries = $_POST["totalEntries"];

  if ($stmt->execute()) {
    $output->success = true;
    echo json_encode($output);
  } else {
    $error->error = mysqli_error($conn);
    echo json_encode($error);
  }

但是,IGNORE 没有被拾取,它继续添加条目。还有另一种解决此问题的好方法吗?

我想看看 USER 和 URL 是否相同,不要添加,回显重复条目。

标签: phpmysql

解决方案


IGNORE实际上主要与您在这里想要的相反。相反,您可以修改 MySQL 表,例如:

ALTER TABLE savesearch ADD UNIQUE KEY(user, buildURLString)

然后删除您的IGNORE关键字


推荐阅读