使用Perl DBI操作MySQL的一些建议
作者:吴炳锡 时间:2024-01-16 11:20:55
使用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时间设置太短.
标签:MySQL
0
投稿
猜你喜欢
python根据txt文本批量创建文件夹
2021-12-18 21:24:52
PyCharm搭建一劳永逸的开发环境
2022-12-23 20:24:23
sql怎样显示出评论最多的文章?
2008-08-08 12:17:00
浅谈django框架集成swagger以及自定义参数问题
2022-01-09 20:25:10
go语言base64用法实例
2024-04-26 17:22:04
Python实现判断给定列表是否有重复元素的方法
2021-05-25 13:34:59
PHP实现克鲁斯卡尔算法实例解析
2023-09-08 19:35:57
Golang使用CGO与Plugin技术运行加载C动态库
2024-02-05 06:20:27
几种设置表单元素中文本输入框不可编辑的方法总结
2024-04-18 09:34:14
Python中的函数式编程:不可变的数据结构
2023-09-05 07:16:35
利用python脚本如何简化jar操作命令
2021-02-12 11:08:15
python中opencv图像叠加、图像融合、按位操作的具体实现
2023-11-11 21:39:21
Python开发工具Pycharm的安装以及使用步骤总结
2022-09-15 08:21:01
MySQL 存储过程中执行动态SQL语句的方法
2024-01-12 21:22:22
Python使用import导入本地脚本及导入模块的技巧总结
2022-09-07 15:09:29
在python中使用requests 模拟浏览器发送请求数据的方法
2022-05-05 03:17:35
Centos7 安装 PHP7最新版的详细教程
2023-10-16 21:14:12
Vue+Element自定义纵向表格表头教程
2023-07-02 17:10:38
两个JS之间的函数互相调用方式
2024-04-10 10:39:45
Go语言kylin任务自动化实例详解
2024-05-08 10:24:04