サンプル集  >  perl  >  MySQL接続とレコード追加
MySQL接続とレコード追加
2012/10/01

MySQLへ接続し1レコード追加します。

◆環境
OS CentOS Linux version 2.6.18-308.13.1.el5
perl v5.8.8 built for i386-linux-thread-multi

DBIを使ってMySQLを操作します。

mysql-con.pl
 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: 
use DBI;

$db   = 'DBI:mysql:database-name:localhost:3306';
$user = 'user';
$pass = 'password';

$dbh = DBI->connect($db, $user, $pass);
print "connect    ".$dbh->err."/".$dbh->errstr."<\n";

$sth = $dbh->prepare("INSERT INTO cdr VALUES("
                       ."'2012-10-01 16:43:00'"
                      .",'\"1802\" <1802>'"
                      .",'1802'"
                      .",'0312345555'"
                      .",'front'"
                      .",'SIP/1111-00000002'"
                      .",'SIP/1111-00000003'"
                      .",'Dial'"
                      .",'SIP/2006,30'"
                      .",2"
                      .",16000"
                      .",'NO ANSWER'"
                      .",3"
                      .",''"
                      .",'1346305791.5'"
                      .",''"
                      .",'0'"
                      .")"
                    );
print "prepare    ".$sth->err."/".$sth->errstr."<\n";

$sth->execute;
print "execute    ".$sth->err."/".$sth->errstr."<\n";

$sth->finish;
print "finish     ".$sth->err."/".$sth->errstr."<\n";

$dbh->disconnect;
print "disconnect ".$dbh->err."/".$dbh->errstr."<\n";

実行してみます。

# perl mysql-con.pl
connect    /<
prepare    /<
execute    /<
finish     /<
disconnect /<

connectなどの結果に付けたerr、errstrともに何も出力されませんでした。 データベースの状況を見てみます。

mysql>select * from cdr \G
*************************** 1. row ***************************
   calldate: 2012-10-01 16:43:00
       clid: "1802" <1802>
        src: 1802
        dst: 0312345555
   dcontext: front
    channel: SIP/1111-00000002
 dstchannel: SIP/1111-00000003
    lastapp: Dial
   lastdata: SIP/2006,30
   duration: 2
    billsec: 16000
disposition: NO ANSWER
   amaflags: 3
accountcode:
   uniqueid: 1346305791.5
  userfield:
     status: 0
1 row in set (0.00 sec)

正しくレコードが追加されていました。

▲ PageTop  ■ Home


Copyright (C) 2012 ymlib.com