Php SQL防止重复条目

Php SQL防止重复条目,php,sql,duplicates,Php,Sql,Duplicates,用户发送sql查询,有时(通常服务器繁忙)会重复发送sql行。我想阻止它。示例:如果用户同时发送相同的查询,sql只接受一个查询。我不想总是删除它。。我可以在phpmyadmin上做吗 如果我不能,这个php的问题是: 我认为在这段代码中: private function returnunitsComplete() { global $database; $time = time(); $q = "SELECT * FROM ".TB_PREFIX."move

用户发送sql查询,有时(通常服务器繁忙)会重复发送sql行。我想阻止它。示例:如果用户同时发送相同的查询,sql只接受一个查询。我不想总是删除它。。我可以在phpmyadmin上做吗

如果我不能,这个php的问题是:

我认为在这段代码中:

    private function returnunitsComplete() {
    global $database;
    $time = time();
    $q = "SELECT * FROM ".TB_PREFIX."movement, ".TB_PREFIX."attacks where ".TB_PREFIX."movement.ref = ".TB_PREFIX."attacks.id and ".TB_PREFIX."movement.proc = '0' and ".TB_PREFIX."movement.sort_type = '4' and endtime < $time";
    $dataarray = $database->query_return($q);


    foreach($dataarray as $data) {

    $tribe = $database->getUserField($database->getVillageField($data['to'],"owner"),"tribe",0);

    if($tribe == 1){ $u = ""; } elseif($tribe == 2){ $u = "1"; } elseif($tribe == 3){ $u = "2"; } elseif($tribe == 4){ $u = "3"; } else{ $u = "4"; }
    $database->modifyUnit(
            $data['to'],
            array($u."1",$u."2",$u."3",$u."4",$u."5",$u."6",$u."7",$u."8",$u."9",$tribe."0","hero"),
            array($data['t1'],$data['t2'],$data['t3'],$data['t4'],$data['t5'],$data['t6'],$data['t7'],$data['t8'],$data['t9'],$data['t10'],$data['t11']),
            array(1,1,1,1,1,1,1,1,1,1,1)
    );
    $database->setMovementProc($data['moveid']);
    }
private函数returnunits完成(){
全球$数据库;
$time=time();
$q=“SELECT*FROM.TB_PREFIX.”movement,“.TB_PREFIX.”attacks where.TB_PREFIX.”movement.ref=“.TB_PREFIX.”attacks.id和“.TB_PREFIX.”movement.proc='0'和“.TB_PREFIX.”movement.sort_type='4'和endtime<$time”;
$dataarray=$database->query\u return($q);
foreach($dataarray作为$data){
$tribe=$database->getUserField($database->getVillageField($data['to'],“owner”),“tribe”,0);
如果($u==1){$u=”;}elseif($u==2){$u=“1”;}elseif($u==3){$u=“2”;}elseif($u==4){$u=“3”;}其他{$u=“4”}
$database->modifyUnit(
$data['to'],
阵列($u.“1”、$u.“2”、$u.“3”、$u.“4”、$u.“5”、$u.“6”、$u.“7”、$u.“8”、$u.“9”、$u.“0”、“英雄”),
数组($data['t1']、$data['t2']、$data['t3']、$data['t4']、$data['t5']、$data['t6']、$data['t7']、$data['t8']、$data['t9']、$data['t10']、$data['t11']),
数组(1,1,1,1,1,1,1,1,1,1,1,1)
);
$database->setMovementProc($data['moveid']);
}

有时返回重复的单位和报告。很抱歉我的英语不好。谢谢…

在表中使用
约束
,如
主键
和/或
唯一键
。它们不会接受相同的值

示例

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
PRIMARY KEY (P_Id)  //primary key
)

有关更多信息,请参阅表中的使用
约束
,如
主键
和/或
唯一键
。它们不接受相同的值

示例

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
PRIMARY KEY (P_Id)  //primary key
)

有关更多信息,请参阅如果要确保表
tbl1
col1
col2
列对不包含重复的值对(但每列本身都可以),可以按如下所示创建必要的唯一索引

ALTER TABLE tbl1
  ADD UNIQUE KEY(col1, col2)

文档(MySQL):

如果要确保表
tbl1
col1
col2
列对不包含重复的值对(但每列本身都可以),可以创建必要的唯一索引,如下所示

ALTER TABLE tbl1
  ADD UNIQUE KEY(col1, col2)

文档(MySQL):

您是否查看了
UNIQUE
列索引?当您说查询意味着对数据库的问题或要插入数据库中的数据时?您是否查看了
UNIQUE
列索引?当您说查询意味着对数据库的问题或要插入数据库中的数据时?您能解释一下吗?我该怎么做?您需要在表中定义它结构。@user1936293检查我的更新post@user1936293请接受答案,如果您的问题解决了,您能解释一下吗?我该怎么做?您需要在表结构中定义它。@user1936293检查我的更新post@user1936293请接受答案,如果您的问题得到解决,语法为
altertable…**ADD**UNIQUE KEY…
语法是
ALTER TABLE…**添加**唯一键…