是否可以创建一个查询,允许ID号每天在mysql中输入一次?
我只是想知道是否有可能有查询,ID号允许每天输入一次,并将在进入数据库24小时后再次接受。
以及如何将它插入到我的数据库中的另一个表。
我有两个表:emp_list祝辞Emp_id, emp_name, reg_dateticket_logs祝辞emp_id, datelogs
我真的不擅长造英语句子。我希望你们能明白我想说的。$check=mysqli_query($con,"SELECT * FROM emp_lists WHERE emp_id='$emp_id'");
$checkrows=mysqli_num_rows($check);
$query = "INSERT INTO ticket_logs (id, emp_id) SELECT id, emp_id FROM emp_lists WHERE emp_id='$emp_id'";
$query_run = mysqli_query($con, $query);
if($checkrows != null) {
echo "";
} else {
//insert results from the input
$query = "INSERT IGNORE INTO ticket_logs(emp_id) VALUES('$emp_id')";
$result = mysqli_query($con, $query) or die('<span style="color:#fa0a0a;text-align:center;">Invalid ID Number!</span>');
mysqli_close($con);
}
echo'<span style="color:#0d02db;text-align:center;">ID Number Accepted! For Today Please Return after 24hours, Thank you!</span>';
};
请在ticket_logs中添加一列,例如timestamp
(类型为datetime
),以便系统可以检查插入记录的日期时间
然后使用该数据来决定是否插入数据。因此,如果没有now() < timestamp + INTERVAL 24 HOUR
的记录,则执行数据插入,否则不执行数据插入。
另一方面,请改为使用参数化的预处理语句,以避免SQL注入攻击。
所以代码是:<?php
//$emp_id=1234;
$mysqli = new mysqli($host, $dbuser, $password, $db);
$query="SELECT * FROM ticket_logs WHERE emp_id=? and now() < timestamp + INTERVAL 24 HOUR";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("i", $emp_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows==0) {
$query2="INSERT INTO ticket_logs (emp_id, timestamp) values (?, now())";
$stmt2 = $mysqli->prepare($query2);
$stmt2->bind_param("i", $emp_id);
$stmt2->execute();
echo '<span style="color:#0d02db;text-align:center;">ID Number Accepted!</span>';
} else {
echo '<span style="color:#0d02db;text-align:center;">ID Number Not Accepted! Please Return after 24hours, Thank you!</span>';
}
?>