我正在尝试一种方法从数据库中删除预订。如何在循环中的条件之后编写 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";
}
}
注意:
- 您使用折旧的 MySQL。
- mysql_query() 返回类似于但不限于 (插入,更新,删除) 的查询的布尔值
- 我知道我的不是一个很好的例子,但尽可能以干净的方式编写代码。这样可以更轻松地查找错误。从适当的缩进开始。
- 在字符串周围放置引号以进行查询时要注意。
简单的$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 代替。