Подтвердить что ты не робот

Пустая база данных в MySQL и PHP?

Можно ли очистить всю базу данных, подключившись к ней с помощью PHP и предоставив команду?

4b9b3361

Ответ 1

Самый простой способ сделать это, если у вас есть привилегии, это:

DROP DATABASE dbName;
CREATE DATABASE dbName;
USE DATABASE dbName;

Альтернативой является запрос базы данных information_schema для триггеров, хранимых процедур (процедур и функций), таблиц, представлений и, возможно, чего-то еще, и их отдельных.

Даже после этого ваша база данных может все еще находиться не в том же состоянии, что и вновь созданная, поскольку она может иметь настраиваемый набор символов и набор настроек. Используйте ALTER DATABASE, чтобы изменить это.

По мере того, как функции продолжают добавляться (события...), вы будете работать все больше и больше. Таким образом, единственный способ полностью освободить базу данных - это удалить ее и заново создать.

Ответ 2

Вы можете получить имена таблиц с помощью

SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your db'

И сделайте truncate,

вы можете сделать

SELECT 'TRUNCATE TABLE ' + table_name + ';' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your db'

И затем повторите набор результатов, выполняющий строковый запрос для каждой записи.

Ответ 3

Вы можете получить список всех таблиц в базе данных ($databaseName), пропустить их все и применить TRUNCATE TABLE к каждому.

$result = mysqli_query($link, "SHOW TABLES IN `$databaseName`"); 
while ($table = mysqli_fetch_array($result)) {
    $tableName = $table[0];
    mysqli_query($link, "TRUNCATE TABLE `$databaseName`.`$tableName`");

    if (mysqli_errno($link)) echo mysqli_errno($link) . ' ' . mysqli_error($link);
    else echo "$tableName was cleared<br>";
}

Это очищает содержимое всех таблиц в базе данных, сохраняя структуру.

Ответ 4

Да. В принципе, вам нужно получить список всех таблиц в базе данных, затем перебрать этот список и выдать TRUNCATE TABLE $tablename для каждой записи.

Это выглядит довольно прилично: Обрезать все таблицы в базе данных MySQL

Ответ 5

Это сработало для меня.

mysql -u < DB-USER > -p<DB-PASS> --silent --skip-column-names -e "SHOW TABLES" <DB-NAME> | xargs -L1 -I% echo 'DROP TABLE `%`;' | mysql -u < DB-USER > -p< DB-PASS > -v < DB-NAME >

Ответ 6

Да. Вы можете подключить базу данных и обрезать таблицу, назначив ее в качестве переменной.

$ conn = new mysqli ($ имя_сервера, $ username, $ password, $ dbname);

$ variableName = $conn-> query ($ que);

if ($conn-> connect_error) {

die ("Ошибка подключения:". $conn-> connect_error);

}

$ result = $conn-> query ('TRUNCATE TABLE yourtablename;');

if ($result) {

    echo "Request ID table has been truncated";  

   }

   else echo "Something went wrong: " . mysqli_error();

Ответ 7

<?php
    $connection = new mysqli($host, $user, $pass, $db);
    $sql = "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE '".$db."'";
    $result = $connection->query($sql);
    $tables = $result->fetch_all(MYSQLI_ASSOC);
    foreach($tables as $table) {
        $sql = "TRUNCATE TABLE '".$table['TABLE_NAME']."'";
        $result = $connection->query($sql);
    }
?>