如何使用 PHP 删除 MySQL 数据库中的所有记录?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/10337158/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 21:57:24  来源:igfitidea点击:

How can I use PHP to delete all records in a MySQL database?

phpmysqlsql

提问by jfisk

I would like to scrap all my records in a database. I want to use just a PHP script, not PhpMyAdmin. I have will be using a MySQL database administrator account. What SQL query should I use?

我想删除我在数据库中的所有记录。我只想使用 PHP 脚本,而不是 PhpMyAdmin。我将使用 MySQL 数据库管理员帐户。我应该使用什么 SQL 查询?

回答by Sampson

You could run a query:

你可以运行一个查询:

/* 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" );

Or

或者

mysql_query( "DELETE FROM tablename" );

CAUTION!

警告!

These queries will result in allrecords being deleted. If you want only certain records to be dropped, add a whereclause:

这些查询将导致所有记录被删除。如果您只想删除某些记录,请添加一个where子句:

mysql_query( "DELETE FROM tablename WHERE userid = 5" );

回答by TRiG

To completely empty the database, dropping all tables (if that's what you really want to do), run this PHP script.

要完全清空数据库,删除所有表(如果您确实想要这样做),请运行此 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__);