Forum Webscript.Ru
		Программирование => Perl => Тема начата: 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
как можно отключить вывод сообщений об ошибке именно в этом участке кода?
			 
			
			- 
				попробуй в начале написать 
use DBI;
use DBD::mysql;
			 
			
			- 
				
demond:
попробуй в начале написать 
use DBI;
use DBD::mysql;
это у меня написано.
сам DBD-mysql работает
			 
			
			- 
				Вот это может помочь наверное:
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; 
} 
по крайней мере так написано
			 
			
			- 
				использовать execute_array с параметрами.