Mam wyszukiwanie google, ale nie mogłem znaleźć odpowiedzi na to, co myślę, że jest łatwe quest.perl dbi reconnect on disconnect
Mam kod perla (przykład poniżej), który pobiera dane co 3 sekundy i aktualizuje odebrane dane do bazy danych Mysql, ale czasami baza danych mysql nie jest dostępna i skrypt umiera. Jak mogę ponownie utworzyć połączenie mysql, jeśli się nie powiedzie?
use DBD::Mysql;
sub updateMysqlDB{
my $connect = DBI->connect("dbi:mysql:$database:$host",
$user,
$pw,
{RaiseError => 1}
);
$myquery = "My sql query to insrt data into columns";
$query_handle=$connect->prepare($myquery);
$query_handle->execute();
$connect->disconnect;
}
while (1) {
if data received call updateMysqlDB();
else wait for data { sleep 3 ;}
}
Witam, czy możesz wskazać mi pełny przykład użycia Auto_connect? Nadal jestem całkiem nowy w perlu, czy mogę po prostu przekazać atrybut jak poniżej? moi $ connect = DBI-> connect ("DBI: mysql: $ bazy danych: $ host", $ user, $ Pw {raiseError => 1, AUTOCOMMIT => 1, mysql_auto_reconnect => 1} ); – Linus
Tak, to powinno zadziałać. Możesz także ustawić bit po utworzeniu '$ connect', np.' $ Connect -> {mysql_auto_reconnect} = 1'. Jednak przed użyciem tej funkcji należy rozważyć ostrzeżenie określone przez @Ted. Możesz również rzucić okiem na 'DBIx :: Connector' w CPAN, dla' Szybkie, bezpieczne połączenie DBI i zarządzanie transakcjami' – Unos
@ Ted Hopp fantastic .. działa świetnie .. dzięki wszystkim. – Linus