Форкджоин ждет, когда все будет завершено. Проверьте свой баннер Observables или uploadService, если он работает правильно, он завершен.
См. Трассировка в DBI . Следующее работает с использованием DBD :: SQLite
, но дает много вывода:
$dbh->trace($dbh->parse_trace_flags('SQL|1|test'));
Вывод:
<- prepare ('SELECT ... FROM ... WHERE ... =?') = DBI :: st = HASH (0x21ee924) в строке 213 booklet-excel.pl
<- execute ('Inhaler') = '0E0' в строке 215 booklet-excel.pl
и т. Д.
Вы можете подключить свой собственный фильтр к потоку трассировки , чтобы оставить только prepare
s.
Для большинства запросов самая простая отладка должна использовать следующее...
, Если Вы готовите и выполняете отдельного оператора с помощью do
метод, используйте:
use feature 'say';
say $dbh->{Statement};
, Если Вы используете prepare
и execute
методы отдельно, используйте:
use feature 'say';
use Data::Dumper;
say $sth->{Statement};
say Dumper($sth->{ParamValues});
Не в общем, потому что DBI не обязательно производит такой запрос. Если ваша база данных поддерживает подготовленные операторы и заполнители в своем API, DBI передаст их и позволит базе данных выполнять работу, что является одной из причин использования подготовленных операторов.