如果完成,则阻止MySQL UPDATE

问题描述

| 我有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().\"\' WHERE hash=\'\".$raw[0].\"\' LIMIT 1\";
    if(MysqL_query($sql))
    {
    print \"ACK\";
    } 
    else
    print \"NACK\";

  }
  exit;
}
    

解决方法

        有两种方法可以这样做: 在表中添加一个字段“ѭ1”以维护某种默认为FALSE的标志。然后,在更新
status
字段的查询中,还将
IS_UPDATED
设置为TRUE。另外,在更新查询中,将此条件添加到where子句-
IS_UPDATED = FALSE
。这意味着
status
列仅在尚未更新时才会更新。 如果字段“ 6”最初为NULL或为空,并且仅在上述查询中更新,则在更新“ 2”列时,我认为您也可以使用此列,而不必添加新列。但这是众所周知的。 我不确定您的应用程序中更新查询的来源。但是,如果可能的话,您还可以考虑向应用程序添加逻辑以完全禁用UPDATE。 我更喜欢方法1。