我有MySQL更新问题。下面的代码正在运行,但我想阻止其他人尝试再次输入Data at field“status”。
我如何为此编写命令?
if(isset($_GET['up']))
{
if(strlen($_GET['up'])==71)
{
db_conn();
$raw = explode(":",$_GET['up']);
$sql = "UPDATE ".$database_table." SET status='".$raw[1]."',upl_time='".time()."' WHERE hash='".$raw[0]."' LIMIT 1";
if(mysql_query($sql))
{
print "ACK";
}
else
print "NACK";
}
exit;
}
答案 0 :(得分:0)
有几种方法可以这样做:
在表中添加一个字段 - IS_UPDATED
- 以维护某种默认为FALSE的标志。然后在您的查询中更新status
字段,同时将IS_UPDATED
设置为TRUE。此外,在更新查询中,将此条件添加到where子句 - IS_UPDATED = FALSE
。这意味着status
列只会在尚未更新时才会更新。
如果字段upl_time
最初为NULL或为空,并且仅在上述查询中更新,则更新status
列时,我认为您也可以使用此列添加一个新的。但是你更了解这一点。
我不确定应用程序中更新查询的来源是什么。但是如果可能的话,您也可以考虑在应用程序中添加逻辑以完全禁用UPDATE。
我更喜欢方法1.