我是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
但是我觉得,如果在编号选择查询和删除查询之间有任何新编号到达数据库,它将在第一个查询中不选择编号的情况下删除它。因此,我希望仅删除在第一个查询中选择的行。让我知道我是否需要更改代码。
非常感谢:)
答案 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;
}