php - SQL 防止重复输入

标签 php sql duplicates

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

如果我不能,这个 php 有问题: http://www.speedyshare.com/S4QRj/Automation.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']);
    }

有时会返回重复的单位和报告。对不起,我的英语不好。谢谢...

最佳答案

在表中使用 CONSTRAINT ,例如 PRIMARY KEY 和/或 UNIQUE KEY 。他们不会接受相同的值。

示例

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

更多信息,请参阅here

关于php - SQL 防止重复输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081283/

相关文章:

SQL:单个查询中有两个计数函数?

javascript - 使用沙箱/隔离执行 sql 查询

mysql - 我该如何写这个 IN 查询

MySQL - 将两个表合并为第三个表,不重复

c# - 如何摆脱正则表达式中的重复项

php - 错误: Class 'MailchimpMarketing\ApiClient'

PHP 和正则表达式 : search for word in string

php - 如何避免无法为两个具有相同名称的不同类重新声明类

PHP/MySQL 连接 - 嵌套 While?

javascript - 从数组中删除重复项