4

私は、彼を信頼しない理由を私に与えてくれるクライアント(そのような状況になっていない)と協力しています。「デッドマンスイッチ」を作成しようとしています。このスイッチでは、フォームの送信時にデータベース内のすべてのテーブルが削除されます(秘密のログイン保護ディレクトリ内)。

方法がわからないのは、PHPを使用してデータベースからすべてのテーブルを削除することです。列と行を削除する方法を知っており、個々のテーブルを削除できることは確かです(ただし、テーブルはたくさんあります)が、データベース内のすべてのテーブルは私を超えています。

4

5 に答える 5

5

データベース全体を削除してみませんか?

DROP DATABASE database_name

サンプルコード

<?php
if(isset($_POST['delete_database'])) {
  //Code goes here
}
?>

<form method="post">
 <input type="submit" name="delete_database" value="Delete Entire Database" />
</form>
于 2012-12-07T15:39:09.933 に答える
2

データベースを削除します

DROP DATABASE <DATABASE_NAME>
于 2012-12-07T15:39:50.763 に答える
1

まず、から読み取ることができ、information_schemaすべてのテーブル名が格納されます。
次に、mysql_list_tables(非推奨)を使用してデータベースのすべてのテーブルを取得できます。第三に、各テーブルを削除する代わりに、データベース全体を削除できます。

于 2012-12-07T15:40:27.433 に答える
1

1 つのオプションは、次を使用することDROP DATABASEです。

DROP DATABASE db_name;

http://dev.mysql.com/doc/refman/5.0/en/drop-database.html

これは単にデータベースを破壊します。別のオプションは、テーブルを使用してデータベース内のすべてのテーブルを選択することinformation_schemaです。

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'

http://dev.mysql.com/doc/refman/5.1/en/tables-table.html

ただし、この考えを完全に信頼する前に、本番サイトでユーザーの権限を確認する必要があります。information_schemaホスティング会社によっては、またはへのアクセスが許可されない場合がありますDROP DATABASE

于 2012-12-07T15:46:51.773 に答える
1

「SHOW TABLES;」をクエリできます。次に、これらの各結果と「DROP TABLE TABLENAME;」をループします。

しかし、誰かがすでに述べたように、他の誰かがこれを見つけて使用した場合. それは悪い日になるでしょう。これを行うことはお勧めしません。

于 2012-12-07T15:47:00.837 に答える