perl链接数据库实例

简介:

目标:方便自己快速查询数据库表记录;

示例:

数据库主机:127.0.0.1

数据库名称:tmp

数据库表名:tmp

表结构:

1
2
3
4
5
6
7
8
9
10
mysql>  desc  tmp.tmp;
+ ------------+--------------+------+-----+---------+----------------+
| Field      | Type         |  Null  Key  Default  | Extra          |
+ ------------+--------------+------+-----+---------+----------------+
| id         |  int (11)      |  NO    | PRI |  NULL     | auto_increment |
| PhoneNum   |  char (11)     |  NO    | MUL |  NULL     |                |
| status     |  int (11)      |  NO    |     |  NULL     |                |
| statusDesc |  varchar (255) | YES  |     |  NULL     |                |
+ ------------+--------------+------+-----+---------+----------------+
rows  in  set  (0.04 sec)

表数据:

1
2
3
4
5
6
7
8
9
10
mysql>  select  from  tmp.tmp;
+ ----+-------------+--------+------------+
| id | PhoneNum    | status | statusDesc |
+ ----+-------------+--------+------------+
|  1 | 18600000000 |     10 | 北京       |
|  2 | 18600000001 |     21 | 上海       |
|  3 | 18600000002 |     10 |            |
|  4 | 18600000000 |     10 |  NULL        |
+ ----+-------------+--------+------------+
rows  in  set  (0.00 sec)

查询代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!D:\Perl64\bin
 
use  DBI;
use  strict;
#use warnings;
 
if  ( @ARGV  != 1) {
     print  "Please input a Phone Num ~ \nEg:perl sql.pl 18600000000 ~ \n" ;
} else  {
my  $tmp  = {
     user =>  'tmp' ,            
     pass =>  'tmp' ,            
     host =>  '127.0.0.1' ,
     database =>  'tmp' ,
     port => 3306,
};
 
my  $Phone_num  shift ;
chomp  $Phone_num ;
 
##链接数据库
my  $tmp_dbh =DBI-> connect ( "DBI:mysql:$tmp->{database};host=$tmp->{host};port=$tmp->{port}" , $tmp ->{user}, $tmp ->{pass},{ RaiseError =>1});
##设置数据库编码
$tmp_dbh -> do  ( "set character_set_client = 'gb2312'" );
$tmp_dbh -> do  ( "set character_set_connection = 'gb2312'" );
$tmp_dbh -> do  ( "set character_set_results = 'gb2312'" );
###查询语句
my  $tmp_sql = qq{select * from tmp where phoneNum = $Phone_num ;} ;
my  $tmp_sth = $tmp_dbh ->prepare( $tmp_sql ) or  die  'Unable to perpare our query:' . $tmp_dbh ->errstr. "\n" ;
###执行语句
my  $results = $tmp_sth ->execute() or  die  'Unable to execute our query:' . $tmp_dbh ->errstr. "\n" ;
###如果没有结构,打印N/A
print  "N/A"  if  $results  == 0;
###将结果以hash方式引用给$reslut_ref
while  ( my  $reslut_ref  $tmp_sth ->fetchrow_hashref){
 
     print  "---------------New Line--------------\n" ;
     print  "id        :    $reslut_ref->{id}\n" ;
     print  "PhoneNum    :    $reslut_ref->{PhoneNum}\n" ;
     print  "status        :    $reslut_ref->{status}\n" ;
     print  "statusDesc    :    $reslut_ref->{statusDesc}\n" ;
}
#####介于statusDesc字段可能为NULL,打印时会提示该变量未初始化,这也是上面关闭warnings的原因,当然也可以局部关闭;
$tmp_sth ->finish();
$tmp_dbh ->disconnect();
}

执行结果;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
E:\Workspaces\MyEclipse10\PerlProject>perl sql.pl
Please input a Phone Num ~
Eg:perl sql.pl 18600000000 ~
 
E:\Workspaces\MyEclipse10\PerlProject>perl sql.pl 18600000000
---------------New Line--------------
id               :       1
PhoneNum        :       18600000000
status          :       10
statusDesc      :       北京
---------------New Line--------------
id               :       4
PhoneNum        :       18600000000
status          :       10
statusDesc      :
 
E:\Workspaces\MyEclipse10\PerlProject>



本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1600971

相关文章
|
23天前
|
存储 监控 安全
数据库多实例的部署与配置方法
【10月更文挑战第23天】数据库多实例的部署和配置需要综合考虑多个因素,包括硬件资源、软件设置、性能优化、安全保障等。通过合理的部署和配置,可以充分发挥多实例的优势,提高数据库系统的运行效率和可靠性。在实际操作中,要不断总结经验,根据实际情况进行调整和优化,以适应不断变化的业务需求。
|
23天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
107 61
|
23天前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
92 57
|
23天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
12天前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
65 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
27 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
1月前
|
数据库连接 网络安全 数据库
网站链接数据库失败,重启网站好了
网站链接数据库失败,重启网站好了
|
1月前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
193 10
|
1月前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
下一篇
无影云桌面