如果完成,则阻止MySQL更新
我对MySQL更新有问题。下面的代码正在运行,但我想阻止其他人再次尝试在“状态”字段输入数据 我如何编写该命令如果完成,则阻止MySQL更新,mysql,block,Mysql,Block,我对MySQL更新有问题。下面的代码正在运行,但我想阻止其他人再次尝试在“状态”字段输入数据 我如何编写该命令 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().
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;
}
有几种方法可以做到这一点:
已更新
,以维护某种默认为FALSE的标志。然后在更新状态
字段的查询中,也将已更新
设置为TRUE。此外,在更新查询中,将此条件添加到where子句-IS\u UPDATED=FALSE
。这意味着状态
列只有在尚未更新时才会更新upl\u time
最初为空,并且仅在上述查询中更新,那么当更新status
列时,我认为您也可以使用此列,而不是添加新列。但你更清楚这一点我更喜欢方法1。所以您希望数据库中的某个特定字段永远保持不变,拒绝其上的所有后续更新?在表中创建具有某个名称(例如更新)的新字段,默认值为0。然后在第一次更新后将该字段设置为1。每次都可以检查该值是否为0。