代码之家  ›  专栏  ›  技术社区  ›  letsCode

防止php mysql中出现重复条目

  •  0
  • letsCode  · 技术社区  · 6 年前

    我的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);
      }
    

    但是,忽略没有被拾取,它继续添加条目。还有别的好办法来解决这个问题吗?

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Martin    6 年前

    IGNORE 实际上主要是为了和你在这里想要的相反。相反,您可以修改mysql表,如下所示:

    ALTER TABLE savesearch ADD UNIQUE KEY(user, buildURLString)

    然后移除你的 忽略 关键字