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

相关文章
|
17天前
|
SQL 安全 关系型数据库
sql数据库本地链接
在SQL数据库中,本地连接通常指的是在同一台计算机上运行的数据库客户端连接到该计算机上的数据库服务器。这种连接通常使用`localhost`或`127.0.0.1`(这是IPv4地址,代表本地回环地址
|
17天前
|
SQL 存储 安全
sql server 数据库实例
SQL Server 数据库实例是指在 SQL Server 中创建的一个独立的数据库环境。每个数据库实例都拥有自己的一套完整的数据库文件、配置设置、用户和权限等,可以独立地进行管理和操作。以下是关于
|
2天前
|
弹性计算 安全 数据库
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
|
1月前
|
存储 缓存 NoSQL
NoSQL缓存数据库的使用场景实例和命令速查表
【5月更文挑战第8天】Redis 是一个内存数据结构服务,用 C 编写,支持五种数据结构,不仅限于键值对。它用于缓存、消息队列、订阅/发布系统等,提供持久化、主从复制和集群支持。了解其核心数据结构和应用场景是有效利用 Redis 的关键。
80 3
NoSQL缓存数据库的使用场景实例和命令速查表
|
15天前
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(4)-实例练习、多表查询总结
MySQL数据库——多表查询(4)-实例练习、多表查询总结
17 1
|
17天前
|
SQL 关系型数据库 数据库
17. Python 数据库操作之MySQL和SQLite实例
17. Python 数据库操作之MySQL和SQLite实例
52 2
|
18天前
|
数据库 关系型数据库 索引
通过实例理解数据库性能优化的方向
【6月更文挑战第3天】性能优化是提升用户体验的关键,尤其是对数据库的优化。慢速数据库可能导致页面加载延迟,造成用户流失。通过组合优化,可确保数据库高效运行,支持应用程序顺畅,提供无缝用户体验。
21 0
通过实例理解数据库性能优化的方向
|
1天前
|
SQL 缓存 关系型数据库
数据库优化 - 实例优化
数据库优化 - 实例优化
|
4天前
|
存储 弹性计算 关系型数据库
云服务器 ECS产品使用问题之安装MySQL数据库间断性无法连接,提示“数据库链接被拒绝”或“数据库链接丢失”的问题,该怎么解决
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
1月前
|
存储 NoSQL MongoDB
使用mongodb数据库实例
【5月更文挑战第9天】MongoDB中的集合类似关系数据库的表,但不强制模式,允许嵌入式文档以实现更灵活的数据布局。安装MongoDB在Ubuntu上涉及添加源列表和更新,CentOS则需创建配置文件。MongoDB支持备份和恢复,以及全文搜索。其灵活模式和动态模式减少了开发中的复杂性,但并非无模式,大部分数据仍具结构化特点。
137 2

热门文章

最新文章