问题描述
|
我有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。