Heim > Datenbank > MySQL-Tutorial > 使用Perl DBI操作MySQL的一些建议_MySQL

使用Perl DBI操作MySQL的一些建议_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-01 13:00:51
Original
1017 Leute haben es durchsucht

使用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)');
Nach dem Login kopieren

目的:
解决perl连接mysql到数据后读取显示结果为乱码的问题.

2.对于特殊字符的写入,最好使用:

 my $sth=$dbh->prepare("insert into wubx.WeekEvent values(?,?,?,?,?,?,?)");
 $sth->execute($OId,$CId,qq/$Time/,$EventType,qq/$CDesc/,$PId,$RFlag);
Nach dem Login kopieren


对于字符串有可能是用户提交的用qq//包裹,减少特殊字符造成SQL不能执行的情况.
3. 如果连接两个数据库有交换的操作或是迁数据,要考虑连连超时的情况.
报错: MySQL server has gone away
  处理办法:
在DBD::mysql 4.012以后支持DBI连接的自动重连.需要设置:

 $dbh->{mysql_auto_reconnect} = 1;

Nach dem Login kopieren

在早期的模块中不支持,简单的方法:

 $dbh->do('set SESSION wait_timeout=72000');
 $dbh->do('set SESSION interactive_timeout=72000');
Nach dem Login kopieren

  此方法适用别的语言连MySQL连接短期丢失或是Server的timeout时间设置太短.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
So ändern Sie MySQL in MySQL
Aus 1970-01-01 08:00:00
0
0
0
MySQL-Startfehler unter Centos
Aus 1970-01-01 08:00:00
0
0
0
MySQL stoppt den Prozess
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage