ho la ricerca su google ma non sono riuscito a trovare una risposta a quello che penso sia una facile quiestion.perl dbi riconnettere su disconnessione
Ho un codice perl (esempio sotto) che riceve i dati ogni 3 secondi e aggiorna i dati ricevuti nel database Mysql ma talvolta il database mysql non è disponibile e lo script muore. Come posso rendere nuovamente la connessione mysql se fallisce?
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 ;}
}
ciao, puoi indicarmi un esempio completo sull'uso di Auto_reconnect? Sono ancora abbastanza nuovo in Perl, posso semplicemente passare l'attributo come di seguito? miei $ collegano = DBI-> connect ("DBI: mysql: $ database: $ host", $ user, $ pw, {RaiseError => 1, AutoCommit => 1, mysql_auto_reconnect => 1} ); – Linus
Sì, dovrebbe funzionare. Puoi anche impostare il bit dopo aver creato '$ connect', come' $ connect -> {mysql_auto_reconnect} = 1'. Tuttavia, è necessario considerare l'avviso specificato da @Ted, prima di utilizzare questa funzione. Puoi anche dare un'occhiata a 'DBIx :: Connector' su CPAN, per' Connessione DBI veloce e sicura e gestione delle transazioni' – Unos
@Ted Hopp fantastico .. funziona alla grande .. grazie a tutti. – Linus