Mysql删除查询只删除一行中的两列

时间:2010-01-11 04:27:17

标签: php mysql sql delete-row

我有一个具有以下结构的表,

    FIELD           TYPE          EXTRA
faciltiy_id         int          auto_increment(Primary Key)
hotel_id            int
facility_title      varchar(20)
facility_desc      varchar(300)

当我想删除具有特定facility_id的行时,我使用代码

DELETE 
FROM   $hotel_facilities
WHERE  facilities_id = '$facilities_id'";

但是,只有facility_titlefacility_desc字段被删除,而不是整行。如果我直接通过phpmyadmin在表上运行此查询,它可以正常工作。

任何人都可以告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

  

但是,只有facility_title和facility_desc字段被删除,而不是整行。如果我直接通过phpmyadmin在表上运行此查询,它可以正常工作......

因为facilities_id是INT,所以不需要将其括在单引号中:

DELETE FROM {$hotel_facilities}
 WHERE facilities_id = {$facilities_id}

但我认为真正的问题是正在调用UPDATE语句,而不是DELETE语句。主要是因为DELETE语句只删除整行而不是特定列。

您需要在触发提交时跟踪调用的内容,并在执行前打印到屏幕(使用echo或通过Javascript,如果它更方便)。