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 数据库连接 API
Perl 教程 之 Perl 数据库连接 7
Perl DBI教程讲解了如何连接数据库,它是与数据库交互的标准接口,提供平台无关的访问。支持事务处理,可通过设置`AutoCommit => 0`在连接时开始事务或使用`$dbh->begin_work()`。事务结束后,用`commit`提交或`rollback`回滚。完成工作后,用`$dbh->disconnect`断开连接。
18 1
|
18天前
|
SQL 数据库连接 API
Perl 教程 之 Perl 数据库连接 4
Perl的DBI模块提供数据库独立接口,用于连接和操作数据库。通过prepare()预处理SQL,execute()执行,finish()释放句柄,及commit()提交事务。
12 1
|
1月前
|
NoSQL Java 数据库
【问题篇】springboot项目通过数据库限制实例端口号
【问题篇】springboot项目通过数据库限制实例端口号
19 0
|
3月前
|
关系型数据库 MySQL PHP
|
18天前
|
SQL 关系型数据库 数据库连接
Perl 教程 之 Perl 数据库连接 1
Perl教程:使用DBI模块实现数据库连接,DBI是数据库独立接口,适用于Oracle、MySQL等。它定义通用方法,通过API处理SQL,分配给驱动执行。常用变量如$dsn(数据库源),$dbh(数据库句柄),$sth(语句句柄),返回值用$rc和$rv,查询结果存入@ary或(rows)。文件操作用$fh,属性用%\attr。
143 2
|
27天前
|
Java 数据库
java面向对象高级分层实例_数据库操作类
java面向对象高级分层实例_数据库操作类
10 1
|
1月前
|
SQL 关系型数据库 数据库
sql如何新建数据库实例
sql如何新建数据库实例
|
1月前
|
SQL JavaScript 关系型数据库
js链接sql数据库
js链接sql数据库
|
1月前
|
SQL 数据库连接 API
python链接数据库,实现数据增删改查
python链接数据库,实现数据增删改查
23 7
|
2月前
|
Oracle 关系型数据库 Java
plsql链接远程Oracle数据库步骤
实际工作中,我们往往需要使用 PLSQL Develope 工具连接远程服务器上的 ORACLE 数据库进行管理,但是由于 ORACLE 安装在本地电脑步骤繁琐,并且会耗费电脑的很大一部分资源,因此,我们寻求一种不需要在本地安装 ORACLE 数据库而能直接使用 PLSQL Develope 工具连接到远程服务器 ORACLE 的方法。
39 2