2016-04-24 16 views
2

このクエリが機能しない理由はわかりません!このクエリは、ユーザーのアカウントを削除することです:私はSELECTDELETEを交換する際にDELETE * FROM TABLE WHERE = this not =動作しない

$query = mysqli_query($connection, "DELETE * FROM users WHERE cookie='$cookie'"); 

しかし、それは動作します!私のDELETEの構文が間違っていますか?

+1

[documentation](http://dev.mysql.com/doc/refman/5.7/en/delete.html)をお読みください。さまざまな方法で記述された適切な構文が見つかります。例もあります! – Terminus

+0

@Terminusアドバイスをいただきありがとうございます!そのドキュメントを次回使用するのを楽しみにしています:) –

答えて

6

DELETEを使用する場合は*は必要ありません。ちょうど

"DELETE FROM users WHERE cookie='$cookie'" 
+0

それは私の本当に怠惰な間違いでした。^_^ –

+1

@ConnectionCoder問題ありません、喜んで助けてください!これで問題が解決した場合は、回答として受け入れていただければ幸いです。 – nhouser9

+0

私はこれをやろうとしていますが、答えが得られる時間が本当に短いため、システムはさらに8分間答えを受け入れることができません。私は解決策を受け入れるだろう! –

3

DELETE文では、*を持つことはできません。

あなたはすべての行を削除したい場合は、これを行います:

$query = mysqli_query($connection, "DELETE FROM users WHERE cookie='$cookie'"); 

あなたがSELECT * FROMを使用し、*はすべてを選択することになります。ただし、DELETEの場合は、行全体のみを削除できるため、不要です。

2

SELECT *を使用すると、テーブルからすべての列が選択されているために機能します。あなたの場合、クエリは次のようになります。

DELETE FROM users WHERE cookie='$cookie' 

ここで列を指定する必要はないため、クエリは次のようになります。

関連する問題