Как получить список всех таблиц MySQLi
20.11.2021 06:38:05 pm
Потребовалось мне изменить кодировку всех таблиц Базы Данных. Таблиц много, и выполнять запрос для каждой таблицы (Ка изменить кодировку таблицы) по отдельности, довольно долго. Решил написать сценарий, который за секунду изменит кодировку у всех таблиц. Чтобы сценарий отработал, необходимо предоставить ему список всех таблиц. Можно написать массив, где будет список всех таблиц Базы Данных, но, тоже долго... Делаю проще. Получаю список всех таблиц, и тут же меняю кодировку каждой таблицы.
И так. Чтобы получить список всех таблиц, выполняем запрос:
Пожалуй, я ответил на вопрос: "Как получить список всех таблиц MySQLi", но раз уж я начал рассказывать, как поменял кодировку всех таблиц свой базы, то расскажу до конца, вдруг, кому понадобиться. Сам сценарий:
В коде, необходимо заменить
И так. Чтобы получить список всех таблиц, выполняем запрос:
SHOW TABLES FROM DBname
Пожалуй, я ответил на вопрос: "Как получить список всех таблиц MySQLi", но раз уж я начал рассказывать, как поменял кодировку всех таблиц свой базы, то расскажу до конца, вдруг, кому понадобиться. Сам сценарий:
$db = new mysqli($host, $user, $pass, $name);
if ($db->connect_errno)
{
exit('Error MYSQLI: ' . $db->connect_error);
}
$db->set_charset('utf8');
$q = 'SHOW TABLES FROM danfa';
$data = $db->query($q) or exit($db->error);
while ($table = $data->fetch_assoc())
{
$q = 'ALTER TABLE `' . $table['Tables_in_DBname'] . '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;';
$db->query($q);
if ($db->error)
{
echo $table['Tables_in_danfa'] . ': ' . $db->error . '<br />';
}
}
В коде, необходимо заменить
DBname
на название Вашей базы, после чего, обратиться к сценарию, через обозреватель. При наличии ошибки, сообщение будет отображено на экране.- Жалоба