2015年9月7日月曜日

perl でmysql データベースに入力

perl を使って mysql を操作しています。csv ファイル(カンマ区切りのファイル)を読み込んで、mysql データベースに入力(インサート)しています。

以下は、そのサンプルです。sample.csv というファイルを1行づつ読み込み、split という機能でカンマで区切ってあるデータをそれぞれ取り出してから、mysql データベースに入力しているものです。


perl を使って mysql データベースにデータを入力する方法については、以前にも紹介させていただいたことがあります。



#!/usr/bin/perl
use strict;
use warnings;
use Web::Scraper;
use URI;
use Encode;
use strict;
use warnings;
use utf8;
use DBI;


open(IN,"sample.csv");
while( my $Meigara0 = <IN> )
{
chomp($Meigara0);

my @Meigara_list;
   $Meigara_list[0] = '';
   @Meigara_list = split(/\,/,$Meigara0);
my $price    =$Meigara_list[1];
my $kataban  = $Meigara_list[0];
my $spec = $Meigara_list[2];
my $url      = $Meigara_list[3];

my $dbuser="root";
my $dbpass="xxxx";
my $dbname="sample_db";

my $dsn = "DBI:mysql:$dbname";
my $dsh = DBI -> connect ( $dsn, $dbuser, $dbpass , { RaiseError => 0 } );
   $dsh->do("set names utf8");
my $sth;

my $sql="insert into sedori (flug,price,kataban,spec,url) values (-99,'" . $price . "','" . $kataban . "','" . $spec . "','" . $url . "');";

   $sth = $dsh->prepare($sql);
   $sth->execute;
  my $num_rows = $sth->rows;
  print "num_rows:" . $num_rows . "\n";


}

0 件のコメント:

コメントを投稿