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

 更新时间:2015年05月09日 16:04:27   作者:吴炳锡  
这篇文章主要介绍了使用Perl DBI操作MySQL的一些建议,针对Perl下连接MySQL的DBD::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时间设置太短.

相关文章

  • MySQL 角色(role)功能介绍

    MySQL 角色(role)功能介绍

    这篇文章主要介绍了MySQL 角色(role)功能的相关资料,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-04-04
  • MySQL 大表添加一列的实现

    MySQL 大表添加一列的实现

    这篇文章主要介绍了MySQL 大表添加一列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • mysql-8.0.16 winx64的最新安装教程图文详解

    mysql-8.0.16 winx64的最新安装教程图文详解

    最近刚学习数据库,首先是了解数据库是什么,数据库、数据表的基本操作,这就面临了一个问题,mysql的安装,我这里下载的是64位的,基于Windows的,需要的朋友可以参考下
    2019-06-06
  • 基于MySQL的存储引擎与日志说明(全面讲解)

    基于MySQL的存储引擎与日志说明(全面讲解)

    下面小编就为大家分享一篇基于MySQL的存储引擎与日志说明(全面讲解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • SQL Server 数据库的备份详细介绍及注意事项

    SQL Server 数据库的备份详细介绍及注意事项

    这篇文章主要介绍了SQL Server 备份详细介绍及注意事项的相关资料,需要的朋友可以参考下
    2016-12-12
  • IOS 数据库升级数据迁移的实例详解

    IOS 数据库升级数据迁移的实例详解

    这篇文章主要介绍了IOS 数据库升级数据迁移的实例详解的相关资料,这里提供实例帮助大家解决数据库升级及数据迁移的问题,需要的朋友可以参考下
    2017-07-07
  • MySQL中的ibdata1用法解读

    MySQL中的ibdata1用法解读

    这篇文章主要介绍了MySQL中的ibdata1用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Mysql事项,视图,函数,触发器命令(详解)

    Mysql事项,视图,函数,触发器命令(详解)

    下面小编就为大家带来一篇Mysql事项,视图,函数,触发器命令(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Mysql数据库中的redo log 写入策略和binlog 写入策略

    Mysql数据库中的redo log 写入策略和binlog 写入策略

    这篇文章主要介绍了Mysql redo log 写入策略和binlog 写入策略,通过本文学习可以了解redo log的写入策略是由InnoDB提供了innodb_flush_log_at_trx_commit参数,binlog的写入策略,write 和fsync的时机,是由参数sync_binlog控制的,需要的朋友可以参考下
    2022-04-04
  • mysql快速添加百万条记录的语句

    mysql快速添加百万条记录的语句

    本文介绍一下关于MySQL使用INSERT SELECT批量插入数据的方法
    2013-11-11

最新评论