删除行结果SQL查询

时间:2018-07-24 17:26:01

标签: php html mysql sql mysqli

我是PHP新手。我是android开发人员,对PHP不够了解。我已经开发了一种功能,可以为我提供来自MySQL数据库的号码。我想立即删除该数字。我目前正在像下面这样

function getAllNumbers() {
    require_once("includes/conf.php");
    global $conn;
    $sql = "SELECT number from number_list WHERE server=1";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($data, $row[0]);
        $delete = "DELETE number from number_list WHERE server=1";
        $result = $conn->query($delete);

        }
    }
    $response["data"] = $data;
    return $response;
}

我的表结构如下

id  int(11) NO  PRI NULL    auto_increment  
name    varchar(50) NO      NULL        
number  varchar(50) NO      NULL        
server  int(10) NO      0       
status  int(1)  NO      -1      
last_act    timestamp   NO      CURRENT_TIMESTAMP       
user_id int(11) NO  MUL NULL        
created_at  timestamp   NO      CURRENT_TIMESTAMP       
disable int(11) NO      0       
notify  int(1)  NO      1       
fcm varchar(500)    NO      NULL    

但是我觉得,如果在编号选择查询和删除查询之间有任何新编号到达数据库,它将在第一个查询中不选择编号的情况下删除它。因此,我希望仅删除在第一个查询中选择的行。让我知道我是否需要更改代码。

非常感谢:)

1 个答案:

答案 0 :(得分:1)

因此,如果您在第一个查询中选择id,因为这是唯一键,则可以使用它来删除该行

function getAllNumbers() {
    require_once("includes/conf.php");
    global $conn;
    $sql = "SELECT number,id from number_list WHERE server=1";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
            $data[] = $row[0];
            $id = $row[1];
            $delete = "DELETE number from number_list WHERE id = $id";
            $result = $conn->query($delete);
        }
    }
    $response["data"] = $data;
    return $response;
}