Предотвратить повторяющиеся записи в 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 не поднимается, он продолжает добавлять записи. Есть еще один хороший способ исправить это?

Я хотел бы видеть, если пользователь и URL-адрес один и тот же, не добавлять, повторить дубликат записи.

0

Решение

IGNORE на самом деле в основном за то, что вы хотите здесь. Вместо этого вы можете изменить свою таблицу MySQL примерно так:

ALTER TABLE savesearch ADD UNIQUE KEY(user, buildURLString)

Затем удалите свой IGNORE ключевое слово

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector