mysql - 从mysql数据库的表中删除行

标签 mysql sql sql-delete

我正在尝试根据条件从数据库中删除某个项目。这是我所拥有的:

while ($row = mysql_fetch_array($result)) {

$now = strtotime("now");
$dateArray = date_parse_from_format("n-j-Y", $row["date"]);
$event_date = strtotime($dateArray['year'].'-'.$dateArray['month'].'-'.$dateArray['day']);
    // temp user array
    $event = array();
    if($event_date > $now) {
//Event is in the future 
    $pid_check =$row["pid"];
    $event["pid"] = $row["pid"];
    $event["name"] = $row["name"];
    $event["longitude"] = $row["longitude"];
    $event["latitude"] = $row["latitude"];
    $event["pavement"] = $row["pavement"];
    $event["traffic"] = $row["traffic"];
    $event["environment"] = $row["environment"];
    $event["image_b64"] = $row["image_b64"];
    $event["date"] = $row["date"];
    $event["time"] = $row["time"];
    $event["type"] = $row["type"];
    // push single product into final response array
    array_push($response["events"], $event);
    } else {
    $result2 = mysql_query("DELETE FROM events WHERE pid = $pid_check");
}
}

但是当我尝试这个时,它显示为空白,当我注释掉 result2 时,它可以工作,但不会删除(废话)。我怎样才能让它删除?抱歉,如果这是一个简单的问题,我对语言的了解不多。

最佳答案

我认为只有当 if 中的条件为 TRUE 时,$pid_check 才会被设置。

它没有为 else 分支设置。

一种选择是在 if 测试之前重新定位 $pid_check 的分配。

关于mysql - 从mysql数据库的表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002026/

相关文章:

mysql - 从表 B 中选择与表 A 匹配的所有值

php - SQL : Merge two rows by some ID and keep values

sql - 通过仅保留最便宜的价格来删除重复项

php - Mysql 存储过程

SQL Server 2008 排序规则冲突 - 如何解决?

php - 用户自定义sql查询的表单入口

java - 如何从JSP文件中迭代ResultSet?

mysql - 将-1附加到所有但删除null

mysql - 有没有办法加快这个 MySQL 删除查询的速度?

mysql - 如何使用分组依据删除重复值