Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP删除MySQL数据库中的所有记录?_Php_Mysql_Sql - Fatal编程技术网

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

如何使用PHP删除MySQL数据库中的所有记录?,php,mysql,sql,Php,Mysql,Sql,我想废弃数据库中的所有记录。我只想使用一个PHP脚本,而不是PhpMyAdmin。我将使用MySQL数据库管理员帐户。我应该使用什么SQL查询?您可以运行一个查询: /* 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_e

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

您可以运行一个查询:

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

小心 这些查询将导致删除所有记录。如果只希望删除某些记录,请添加
where
子句:

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

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

您需要更具体一些。您是否正在使用mysqli
<代码>PDO?是否要清除表中的所有行<代码>截断表还是根据条件仅截断表中的特定行
DELETE FROM table WHERE field='identifier'
希望PHP中的SQL用户没有截断的权限,但这既不在这里也不在那里。可能是对“”的简单搜索的重复给出了答案。
<?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__);