php - 防止 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 是否相同,不要添加,回显重复条目。
解决方案
IGNORE
实际上主要与您在这里想要的相反。相反,您可以修改 MySQL 表,例如:
ALTER TABLE savesearch ADD UNIQUE KEY(user, buildURLString)
然后删除您的IGNORE
关键字
推荐阅读
- isabelle - 无法找出相互递归谓词的归纳规则
- asp.net-mvc - AspNetUsers 后代:树视图 MVC
- python-3.x - Pyppeteer 在 Linux 和 Windows 上的行为不同
- actions-on-google - 如何控制智能灯(颜色、色温、亮度)
- javascript - HTML5 视频 - 暂停几秒钟然后继续播放
- python - 如何在 python 中为 firestore 批处理 500 多个操作?
- php - 在删除路由中传递变量会导致“找不到页面”错误 - Laravel
- python - 列表的条件合并
- php - 仅替换子字符串的第一个实例
- android - 我想在一个屏幕上显示日期选择器,开始时间和结束时间?