私は検索グーグルがありますが、私は簡単な憶測であると思う答えを見つけることができませんでした。perl dbi再接続時に再接続
3秒ごとにデータを取得し、受信したデータをMysqlデータベースに更新するperlコード(下記の例)がありますが、mysqlデータベースが利用できず、スクリプトが停止することがあります。失敗した場合、どうすればmysql接続を再作成できますか?
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 ;}
}
こんにちは、Auto_reconnectの使い方の完全な例を教えてください。私はまだPerlで新しいです、私はちょうど下のような属性を渡すことができますか? 私$接続= DBI->接続( "DBI:MySQLの:$データベース:$ホスト"、 $ユーザ、 $ PW、 {RAISEERROR => 1、 自動コミット=> 1、 mysql_auto_reconnect => 1} ); – Linus
はい、うまくいくはずです。 '$ connect - > {mysql_auto_reconnect} = 1'のように' $ connect'を作成した後にビットを設定することもできます。ただし、この機能を使用する前に@Tedで指定された警告を考慮する必要があります。また、CPANの 'DBIx :: Connector'を'高速で安全なDBI接続とトランザクション管理 'のために見ることができます – Unos
@Ted Hopp fantastic ..すごくうれしく思います。 – Linus