如何在循环条件 -php 之后使用 DELETE 语句


How to use a DELETE statement after a loop condition -php

我正在尝试一种方法从数据库中删除预订。如何在循环中的条件之后编写 DELETE 语句。我在那里有我想使用的语句,但我只是在回应它。我不知道如何实际使声明生效

function deleteBooking(){
        $bData = mysql_query("SELECT * FROM booking_table ORDER BY Date_of_Booking ASC");
        while($brecord = mysql_fetch_array($bData)){
            $today = date('d-m-Y');
            if($brecord['Date_of_Booking']>$today){
                echo 'DELETE * FROM booking_table WHERE Date_of_Booking <'.$today.'';
            }else{
                echo 'not deleted';
            }
        }
    }
DELETE * FROM booking_table WHERE Date_of_Booking > NOW();

只需在病情后执行此操作即可

if($brecord['Date_of_Booking']>$today)
    {
       if(mysql_query("DELETE * FROM booking_table WHERE Date_of_Booking< now()")==true)
          {
            echo "delete successful";
          }
       else{
            echo "delete failed";
          }
    }

注意:

  1. 您使用折旧的 MySQL。
  2. mysql_query() 返回类似于但不限于 (插入,更新,删除) 的查询的布尔值
  3. 我知道我的不是一个很好的例子,但尽可能以干净的方式编写代码。这样可以更轻松地查找错误。从适当的缩进开始。
  4. 在字符串周围放置引号以进行查询时要注意。

简单的$query = "SELECT name from Person WHERE Last_name = "John""可能会导致潜在的错误。

以这种方式编写它将使其更具可读性并且不受语法错误的影响 $query = "SELECT name from Person WHERE Last_name = 'John'" 手拉手使用双引号和单引号

您正在回显查询。您需要执行它:

mysql_query("DELETE * FROM booking_table WHERE Date_of_Booking <'.$today.'");

编辑:忽略以上内容,没有仔细阅读...

相反:

mysql_query("DELETE * FROM booking_table WHERE Date_of_Booking < now()");

此外,mysql_query已弃用,将来将被删除。因此,我建议使用 mysqli 或 PDO 代替。