我有一个数据库,在将 10 行添加到一起时,我希望在 24 小时限制内避免重复任何数据(例如通过电话号码)。我现在也已经保存了到达时间功能,但我想知道如何实现它?
<?php
if (($getdata = fopen($target_file, "r")) !== FALSE) {
fgetcsv($getdata);
while (($data = fgetcsv($getdata)) !== FALSE) {
$fieldCount = count($data);
for ($c = 0; $c < $fieldCount; $c++) {
$columnData[$c] = $data[$c];
}
$mobile = mysqli_real_escape_string($connect, $columnData[0]);
$value = mysqli_real_escape_string($connect, $columnData[1]);
$import_data[] = "('" . $mobile . "','" . $value . "',NOW())";
}
$import_data = implode(",", $import_data);
$query = "INSERT INTO master(name,value,whenadded) VALUES $import_data ;";
$result = mysqli_query($connect, $query);
$message .= "Data imported successfully.";
fclose($getdata);
}
?>
最佳答案
虽然示例代码不太清楚。我认为主要问题是防止在 24 小时内添加重复的列。
执行此操作的步骤如下:
- 应该有一个
DATETIME
列来跟踪数据库中记录的创建日期。它可能具有默认值CURRENT_TIMESTAMP
。我们假设名为CREATED
。 - 在插入数据之前,请务必使用以下 SQL 检查 24 小时内是否存在重复数据:
请注意,您可以放置任何需要唯一的列。
SELECT COUNT(*) AS CONT
FROM MY_TABLE
WHERE TIMESTAMPDIFF(HOUR,CREATED,NOW())<=24 AND (PHONE = ? OR EMAIL=? OR NAME=? ......)
如果查询返回任何大于 0 的数字,那么您应该向用户返回错误。
更新 根据下面提问者评论中的要求,请检查此 question about removing duplicate entries keeping only one
关于php - 我想在添加新的 10 行条目时检查我的数据库,限制 24 小时不重复。我如何通过Php和MySql来实现它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42431098/