PHP Mysqli 从数据库中删除



所以我认为这将是一个简单的查询,只是删除在某些列下存储任何数据的行,但由于某种原因,我的查询返回零行已被删除,我检查了表,它们仍然存在。

我想做的是从gps_routes表中删除route_latroute_long不包含位置(空(。

我已经检查了我的以确保我也启用了删除权限。

$sql = "SELECT * FROM gps_routes";
$result = $link->query($sql);
$rowCount = $result->num_rows; $rows_deleted = 0; $delete_row = false;
if ($rowCount > 0)
{
while($row = $result->fetch_assoc())
{
$user = $row['user_email'];
$id = $row['route_id'];
$lat = $row['route_lat'];
$lng = $row['route_long'];
if (empty($lat) || empty($lng)){
$delete_row = true;
}
if (ctype_space($lat) || strlen(trim($lat)) == 0){
$delete_row = true;
}
if ($lat == '' || $lat == ""){
$delete_row = true;
}
if ($delete_row){
$rows_deleted++;
mysqli_query($link, "DELETE FROM gps_routes WHERE user_email = '$user' AND route_id = '$id'");
}
}
echo "Routes deleted: $rows_deleted";
}

从您的代码中建议您只想遍历数据库并检查纬度和经度是否为空。 如果是,则删除它们。

听起来你可以用这个查询来完成工作。

mysqli_query($link, "DELETE FROM gps_routes WHERE (route_lat = '' OR route_lat IS NULL) OR (route_long = '' OR  route_long IS NULL)");

这就是我根据您提供的代码执行此操作的方式:

$query = "DELETE FROM gps_routes WHERE (route_lat = '' OR route_lat IS NULL) OR (route_long = '' OR  route_long IS NULL)";
$result = $link->query($query);
echo 'Routes deleted: ' . $result->num_rows;

最新更新