powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) работа с БД, удаление таблиц
3 сообщений из 3, страница 1 из 1
(PERL) работа с БД, удаление таблиц
    #33335796
Vitaly_VGT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересует именно PERL, т.к. в PHP нижеописанного не произойдет.
Нужно удалить список таблиц из БД. Но как только скрипт доходит до несуществующей таблицы цикл прерывается. Как увидите из содержания кода, я не знаком с PERL-ом вообще и не знаю как ошибки обрабатываются.
как проигнорировать такую ошибку?
или как проверить существование таблицы с именем $table_name

Ниже код:
while($result = $sth->fetchrow_hashref)
{
$table_name = $result->{'ip'};
my $res=$table_name=~s[(\.+)]<"_">ge;
print "result=$res new ip=$ip\n";
$sql2 = "DROP TABLE `".$ip."`";
$sth2 = $dbh2->prepare($sql2);
$sth2->execute();
}
...
Рейтинг: 0 / 0
(PERL) работа с БД, удаление таблиц
    #33336092
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vitaly_VGTИнтересует именно PERL, т.к. в PHP нижеописанного не произойдет.
Нужно удалить список таблиц из БД. Но как только скрипт доходит до несуществующей таблицы цикл прерывается. Как увидите из содержания кода, я не знаком с PERL-ом вообще и не знаю как ошибки обрабатываются.
как проигнорировать такую ошибку?


perldoc -f eval

или как проверить существование таблицы с именем $table_name


я подозреваю что это от БД зависит...

я вот в сибайсе в зависимости ОТ пользовал или
Код: plaintext
1.
if object_id("Obj") is not null
или чтение из системной таблицы...
...
Рейтинг: 0 / 0
(PERL) работа с БД, удаление таблиц
    #33337693
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vitaly_VGT
как проигнорировать такую ошибку?
или как проверить существование таблицы с именем $table_name


1) если вы используете mysql то разумнее вместо drop table tblname использовать
drop table if exists tblname
2) когда вы открываете соединение с базой, вы можете передать ей параметр как именно отрабатывать неудачи. Это параметр RaiseError. Если он 1 - то программа сдохнет при ошибке
в выполнении. Если он 0 - то сам дескать ковыряйся проверяй что там происходит.

То есть практически - вам можете сделать:
Код: plaintext
1.
2.
3.
4.
$dbh2->{"RaiseError"} =  0 ;
$dbh2->{PrintError} =  0 ;
$sql2 = "DROP TABLE `".$ip."`";
$dbh2->do($sql2) or {  print "А таблицы то не было нифига"; };
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) работа с БД, удаление таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]