Модуль Perl DBI не вызывает исключение - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь выполнить какой-то оператор, который не будет выполнен, в методе do() с флагом DBI RaiseError, но он не вызывает исключение.

use strict;
use warnings;
use DBI;

my $dbh = DBI->connect("DBI:mysql:database=test;host=192.168.10.101",
                        "test", "123456", {'RaiseError' => 1});

eval { $dbh->do("DROP TABLE foo") }; # foo table not exist
if ($@) {
    print "Dropping foo failed: $@\n";
} else {
    print "ok\n";
}

Этот код возвращает ok вместо ошибки.

У меня эта проблема только на Windows 7. (Когда я запускаю этот код в Linux, возникает исключение.) Это ошибка?

Версия Perl: 5.16.3, Версия DBI: 1.623, DBD :: mysql версия: 4.022

1 Ответ

0 голосов
/ 22 января 2019

Обновление DBD :: mysql до последней версии мне помогло.

...