應用Perl DBI操作MySQL的一些建議。本站提示廣大學習愛好者:(應用Perl DBI操作MySQL的一些建議)文章只能為提供參考,不一定能成為您想要的結果。以下是應用Perl DBI操作MySQL的一些建議正文
應用perl銜接mysql,這個網上有許多案例了,普通年夜家都是DBI下的DBD::MySQL這個模塊停止.這裡做一個mask弄一個TIPS:
Perl DBI MySQL的字符集為UTF8
Perl DBI 特別字符寫入時報錯
Perl DBI 銜接主動重連或是銜接超時
1. 當MySQL的字符集是UTF8時須要引入:
use utf8; binmode(STDOUT, ':encoding(utf8)'); binmode(STDIN, ':encoding(utf8)'); binmode(STDERR, ':encoding(utf8)');
目標:
處理perl銜接mysql到數據後讀取顯示成果為亂碼的成績.
2.關於特別字符的寫入,最好應用:
my $sth=$dbh->prepare("insert into wubx.WeekEvent values(?,?,?,?,?,?,?)"); $sth->execute($OId,$CId,qq/$Time/,$EventType,qq/$CDesc/,$PId,$RFlag);
關於字符串有能夠是用戶提交的用qq//包裹,削減特別字符形成SQL不克不及履行的情形.
3. 假如銜接兩個數據庫有交流的操作或是遷數據,要斟酌連連超時的情形.
報錯: MySQL server has gone away
處置方法:
在DBD::mysql 4.012今後支撐DBI銜接的主動重連.須要設置:
$dbh->{mysql_auto_reconnect} = 1;
在晚期的模塊中不支撐,簡略的辦法:
$dbh->do('set SESSION wait_timeout=72000'); $dbh->do('set SESSION interactive_timeout=72000');
此辦法實用其余說話連MySQL銜接短時間喪失或是Server的timeout時光設置太短.