Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1020052
  • 博文数量: 162
  • 博客积分: 3887
  • 博客等级: 中校
  • 技术积分: 1617
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 19:05
文章分类

全部博文(162)

文章存档

2015年(4)

2014年(7)

2013年(10)

2012年(16)

2011年(89)

2010年(36)

分类: Python/Ruby

2011-10-12 16:31:47

今天学习perl脚本语言,听说很强大!
安装环境:linuxfc6, mysql, perl, perl-DBI, perl-DBD-mysql等库。
1、perl连接mysql

#!/bin/perl -w

use DBI;

//insert or update

my $rows = $dbh->do("INSERT INTO users (id, username, country) VALUES (4, 'jay', 'CZ')");

# Connect to target DB
my $dbh = DBI->connect("DBI:mysql:database=hrnm;host=127.0.0.1","dagun","123456", {'RaiseError' => 1});

//

# query 
my $sqr = $dbh->prepare("select ip from hosts where host='mysql'");
$sqr->execute();

while(my $ref = $sqr->fetchrow_hashref()) {
    print "$ref->{'ip'}\n";
}

$dbh->disconnect();

注意:如果上面127.0.0.1改为localhost,会有mysql.sock找不到提示。

四步骤:

  1. 开始,通过调用connect() 方法初始化数据库的句柄。connect() 方法接收连接参数并作为字符串,包括数据库类型("mysql"),主机名称("localhost"),以及数据库名称("hrnm")。用户名称("dagun")和密码("123456")作为第二和第三个变量提供给connect() 方法。
  2. 建立SQL查询字符串,并使用do()prepare()以及execute()方法执行查询语句。
  3. do()方法是针对于一次性使用的INSERT,UPDATE或者DELETE查询,但prepare()execute()方法针对的是SELECT查询。使用这些方法得到的对象将有所不同,这取决于查询的类型,查询结果是否成功也是如此。成功的SELECT查询将返回一个结果对象,成功的INSERT/UPDATE/DELETE 查询将返回一些相关的行。而不成功的查询将返回一个错误。
  4. 对于SELECT查询,结果对象将被进一步处理以提取数据。
  5. 使用一个循环,fetchrow_hashref()方法将返回每一记录作为Perl的信号。
  6. 通过调用disconnect()方法结束会话。
2、时间函数
localtime使用
    2.1. 一般使用:
@nowtime=localtime();
#($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
注意$mon+1,$year+1900;2.2
如果要把时间保存在数据库中,可以先将其保存为字符串,然后读出时对字符串再处理。
@nowtime=localtime();
$nowstring=join(',',@nowtime);
将$nowstring保存;
读取的时候
@nowtime=split(',',$nowstring);
3、
阅读(1017) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~