【发布时间】:2012-11-30 05:04:47
【问题描述】:
我有这段代码记录时间和超时
if(isset($_POST['submit']))
{
$query=mysql_query("Select * FROM tblattendance where IDNumber='" . $_POST['IDNumber'] . "' ");
list($exists) = mysql_fetch_row($query);
$idnumber=$row['IDNumber'];
$fname=$row['FirstName'];
$mname=$row['MiddleName'];
$lname=$row['LastName'];
if($exists){
$sql="UPDATE $tbl_name SET TimeoutAM=CURTIME() WHERE IDNumber='" . $_POST['IDNumber'] . "' ORDER BY Date DESC, TimeinAM DESC LIMIT 1";
}else{
$sql="INSERT INTO $tbl_name SET Date=CURRENT_DATE(), TimeinAM=CURTIME(), IDNumber='$idnumber', FirstName='$fname', MiddleName='$mname', LastName='$lname' ";
}
$result=mysql_query($sql);
}
我的问题是,如果 IDNumber 不存在,它将添加一个带有 timein 的新记录,然后更新超时。但是,当我尝试再次添加相同的 IDNumber 时,它并没有添加新记录,而是只是更新了现有记录的超时列。我该怎么做才能再次添加记录?
【问题讨论】:
-
看起来您正在使用“mysql”系列函数。请注意,这些函数已弃用,最终将从 PHP 中删除。如果可能,请switch to mysqli or PDO。
-
你的代码有SQL injection vulnerabilities。请考虑切换到 mysqli 或 PDO,以便您可以使用 prepared statements with parameterized queries。