Forum Webscript.Ru

Программирование => Perl => Тема начата: Sun Ja от 06 Августа 2008, 11:41:06

Название: как отключить сообщения об ошибках консоль
Отправлено: Sun Ja от 06 Августа 2008, 11:41:06
имеется консольный скрипт на языке перл.

строка вида:
             

sub mysql_qwery {
 $sth=$dbh->prepare($_[0]);
 $sth->execute;
 $sth->finish;
}


mysql_qwery("INSERT INTO baze.tmp_cat_keyword$prefix VALUES (0,\'$idbook\',\'$k\');") ;

выводит в консоль множество строк:

DBD::mysql::st execute failed: Dudlicate entry \'......\' for key 2 at ... line 37

как можно отключить вывод сообщений об ошибке именно в этом участке кода?
Название: как отключить сообщения об ошибках консоль
Отправлено: demond от 06 Августа 2008, 14:21:25
попробуй в начале написать
use DBI;
use DBD::mysql;
Название: как отключить сообщения об ошибках консоль
Отправлено: Sun Ja от 06 Августа 2008, 14:24:10
Цитировать
demond:
попробуй в начале написать
use DBI;
use DBD::mysql;


это у меня написано.
сам DBD-mysql работает
Название: как отключить сообщения об ошибках консоль
Отправлено: ravshaniy от 06 Августа 2008, 23:29:51
Вот это может помочь наверное:
http://search.cpan.org/~timb/DBI-1.607/DBI.pm#PrintWarn_(boolean,_inherited) (http://search.cpan.org/~timb/DBI-1.607/DBI.pm#PrintWarn_(boolean,_inherited))

вроде как прагму warnings можно также использовать

no warnings; #отмена всех сообщений компилятора

если конечно скрипт не выполняется с праметром -W;

и еще там написано что параметр -X действует как
no warnings \'all\';

и еще можно сделать например так
sub mysql_qwery {
 $sth=$dbh->prepare($_[0]);  
   {
        no warnings;
       $sth->execute;  
   }
 $sth->finish;
}



по крайней мере так написано
Название: как отключить сообщения об ошибках консоль
Отправлено: arto от 07 Августа 2008, 00:47:44
использовать execute_array с параметрами.