0

データベース内のすべてのレコードを廃棄したいと考えています。PhpMyAdmin ではなく、PHP スクリプトのみを使用したい。MySQL データベース管理者アカウントを使用します。どの SQL クエリを使用すればよいですか?

4

2 に答える 2

11

次のクエリを実行できます。

/* Assumes the existence of a few key variables
   and further, that your user has the appropriate permissions */

mysql_connect( $host, $user, $pass ) or die( mysql_error() );
mysql_select_db( $db ) or die( mysql_error() );

mysql_query( "TRUNCATE TABLE tablename" );

または

mysql_query( "DELETE FROM tablename" );

あぶない!

これらのクエリにより、すべてのレコードが削除されます。where特定のレコードのみを削除する場合は、次の句を追加します。

mysql_query( "DELETE FROM tablename WHERE userid = 5" );
于 2012-04-26T16:06:06.153 に答える
3

データベースを完全に空にし、すべてのテーブルを削除するには(それが本当に必要な場合)、このPHPスクリプトを実行します。

<?php

header('Content-Type: text/plain');

$link = mysqli_connect('host', 'username', 'password');
mysqli_select_db($link, 'database_name');
mysqli_set_charset($link, 'utf8');

$sql = 'SHOW TABLE STATUS FROM `database_name`;';
$result = mysqli_query($link, $sql);

$rows = array();
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    $rows[] = $row;
}

$n = 0;
foreach ($rows as $row) {
    $sql = 'DROP TABLE IF EXISTS `' . mysql_real_escape_string($row['Name']) . '`;';
    mysqli_query($link, $sql);
    ++$n;
}

echo $n . 'tables dropped' . PHP_EOL;
exit(__FILE__ . ': ' . __LINE__);
于 2012-04-26T16:43:14.067 に答える