Как получить последнюю ошибку из MySQL в Perl - PullRequest
0 голосов
/ 09 июля 2019

Я использую DBI в Perl для доступа к MySQL.

return DBI->connect('DBI:mysql:MyBase:localhost', 'user', 'pass');
…
my $query = $connection->prepare($command);
my $result = $query->execute();
$query->finish;

Я бы хотел не использовать die или try.Я просто хотел бы иметь возможность выполнить команду MySQL и затем при следующем проверке вызова для типов ошибок.

Возможно ли это?

1 Ответ

2 голосов
/ 09 июля 2019

Как указано для connect :

"Если не удается установить соединение (см. Ниже), он возвращает undef и устанавливает как $ DBI :: err, так и $ DBI :: errstr. (Он явно не устанавливает $ !.) Обычно вы должны проверять состояние возврата соединения и выведите $ DBI :: errstr, если это не удалось. "

Как только у вас есть дескриптор, метод err должен проверяться после каждого вызова метода дескриптора базы данных или оператора, а errstr аналогичным образом представляет сообщение об ошибке в случае ошибки.

Настоятельно рекомендуется и действительно требуется для таких оболочек, как DBIx :: Connector или Mojo :: Pg , чтобы установить RaiseError , чтобы избежать этот беспорядок в коде и вероятность того, что вы забудете проверить ошибки.

...