Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2009, 18:45   #1
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию PHP и MySQL удаление Table

Имеется база данных MySQL в ней много TABLE требуется их всех удалить.Нет возможности удалить базу , а потом создать.
Надеюсь что подскажите какойнить скриптик на PHP
bondik вне форума Ответить с цитированием
Старый 08.12.2009, 18:45   #2
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

TRUNCATE вроде
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 08.12.2009, 18:58   #3
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

вот мне и нужен скрипт который переберет все TABLE и на каждую сделает TRUNCATE
bondik вне форума Ответить с цитированием
Старый 08.12.2009, 18:58   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

TRUNCATE - очищает таблицу

делаем запрос
Код:
SHOW TABLES
потом в цикле
Код:
DROP TABLE table_name
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 08.12.2009, 19:05   #5
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Извините а можно сам скриптик, не хочу вникать в MySQL,просто понадобилось.Плюсик поставлю.
bondik вне форума Ответить с цитированием
Старый 08.12.2009, 19:41   #6
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Написал.Подскажите пожалуйста что не правильно.Не удаляет =(((
Код:
<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Could not connect to mysql';
    exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}
$i=0;
while ($row = mysql_fetch_row($result)) {
    $sql="DROP TABLE '$row[i]'";
     mysql_query($sql);
     $i++;
     echo "Table {$row[i]} deleted\n";
}

mysql_free_result($result);
?>
bondik вне форума Ответить с цитированием
Старый 08.12.2009, 21:35   #7
WQMozzG
Новичок
Джуниор
 
Аватар для WQMozzG
 
Регистрация: 08.12.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от bondik Посмотреть сообщение
Написал.Подскажите пожалуйста что не правильно.Не удаляет =(((
Код:
<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Could not connect to mysql';
    exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}
$i=0;
while ($row = mysql_fetch_row($result)) {
    $sql="DROP TABLE '$row[i]'";
     mysql_query($sql);
     $i++;
     echo "Table {$row[i]} deleted\n";
}

mysql_free_result($result);
?>
Дык тут все просто =) Замени этот участок кода:
Код:
$sql="DROP TABLE '$row[i]'";
На этот:
Код:
$sql="DROP TABLE '{$row[$i]}'";
Т.к. массивы во вставке необходимо обрамлять фигурными скобками. Для примера - сделай вот это:
Код:
echo "DROP TABLE '$row[i]'";
На выходе получишь:
DROP TABLE 'Array()[i]'
Как-то так
Если каму нужно совет в ПЫХЫПЫ и Муське - кричите =)
WQMozzG вне форума Ответить с цитированием
Старый 08.12.2009, 22:42   #8
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Код:
<?php
$dbname = 'mysql_dbname';
$bd = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
if (!$bd) {
    echo 'Could not connect to mysql';
    exit;
}
mysql_select_db($dbname,$bd) or die ("Error: " .mysql_error());

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
     $sql="DROP TABLE {$row[0]}";
     mysql_query($sql) or die ("Error: " .mysql_error());;
     echo "$sql<br />";
}

mysql_close($bd);
?>
1. Забыли - mysql_select_db.
2. почитайте справку о mysql_fetch_row, отсуда $i - лишняя
3. если хотите понять что идет не так в запросе используйте функцию mysql_error, хотябы на этапе отладки.
Gorychev вне форума Ответить с цитированием
Старый 08.12.2009, 23:24   #9
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Спасибо большое =)
bondik вне форума Ответить с цитированием
Старый 09.12.2009, 00:40   #10
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

на последние во такую штуку говорит =(
Код:
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /var/wwwusers/bias/bias/docs/ndrop.php on line 10
Error:
bondik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP и MySQL D_dd Помощь студентам 1 04.07.2009 22:45
Удаление, обновление записей из MySQL таблицы xDjarx БД в Delphi 2 14.05.2008 13:36
mysql & php kkkggg PHP 1 08.08.2007 19:55