我有一个数据库,在添加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);
}
?>
发布于 2017-02-25 03:25:07
虽然示例代码不是很清楚。我认为主要的问题是防止在24小时内添加重复的列。
具体步骤如下:
DATETIME
列,用于跟踪记录在数据库中的创建日期。它可能具有默认值CURRENT_TIMESTAMP
。让我们假设名为CREATED
.请注意,您可以放在任何需要唯一的列上。
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
https://stackoverflow.com/questions/42431098
复制