《Mysql實(shí)例使用Perl DBI操作MySQL的一些建議》要點(diǎn):
本文介紹了Mysql實(shí)例使用Perl DBI操作MySQL的一些建議,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
MYSQL教程使用perl連接mysql,這個(gè)網(wǎng)上有很多案例了,一般大家都是DBI下的DBD::MySQL這個(gè)模塊進(jìn)行.這里做一個(gè)mask弄一個(gè)TIPS:
?Perl DBI MySQL的字符集為UTF8
?Perl DBI 特殊字符寫(xiě)入時(shí)報(bào)錯(cuò)
?Perl DBI 連接自動(dòng)重連或是連接超時(shí)
?
1. 當(dāng)MySQL的字符集是UTF8時(shí)需要引入:
?
MYSQL教程
use utf8;
binmode(STDOUT, ':encoding(utf8)');
binmode(STDIN, ':encoding(utf8)');
binmode(STDERR, ':encoding(utf8)');
MYSQL教程目的:
解決perl連接mysql到數(shù)據(jù)后讀取顯示結(jié)果為亂碼的問(wèn)題.
?
2.對(duì)于特殊字符的寫(xiě)入,最好使用:
MYSQL教程
my $sth=$dbh->prepare("insert into wubx.WeekEvent values(?,?,?,?,?,?,?)");
$sth->execute($OId,$CId,qq/$Time/,$EventType,qq/$CDesc/,$PId,$RFlag);
MYSQL教程
對(duì)于字符串有可能是用戶(hù)提交的用qq//包裹,減少特殊字符造成SQL不能執(zhí)行的情況.
3. 如果連接兩個(gè)數(shù)據(jù)庫(kù)有交換的操作或是遷數(shù)據(jù),要考慮連連超時(shí)的情況.
?報(bào)錯(cuò): MySQL server has gone away
處理方法:
? 在DBD::mysql 4.012以后支持DBI連接的自動(dòng)重連.需要設(shè)置:
MYSQL教程
$dbh->{mysql_auto_reconnect} = 1;
MYSQL教程? 在早期的模塊中不支持,簡(jiǎn)單的辦法:
??
MYSQL教程
$dbh->do('set SESSION wait_timeout=72000');
$dbh->do('set SESSION interactive_timeout=72000');
MYSQL教程? 此辦法適用別的語(yǔ)言連MySQL連接短期丟失或是Server的timeout時(shí)間設(shè)置太短.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql實(shí)例使用Perl DBI操作MySQL的一些建議》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/13142.html