0

次の構造のテーブルがあります。

    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を介してこのクエリを直接実行すると、正しく機能します。

誰かが私が間違っていることについて私に教えてもらえますか?

4

1 に答える 1

1

ただし、行全体ではなく、facility_titleフィールドとfacility_descフィールドのみが削除されます。テーブルに対してphpmyadminを介してこのクエリを直接実行すると、正しく機能します...

はINTであるため、facilities_id一重引用符で囲む必要はありません。

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

しかし、本当の問題は、DELETEステートメントではなくUPDATEステートメントが呼び出されていることだと思います。主な理由は、DELETEステートメントは特定の列ではなく行全体のみを削除するためです。

送信がトリガーされたときに呼び出されているものをトレースし、echo実行する前に画面に印刷する必要があります(Javascriptを使用するか、より便利な場合はJavascriptを介して)。

于 2010-01-11T04:44:03.187 に答える