MySQLに流し込みたいのですがうまく行きません。
下記の print $perl_out;が ARRAY(0x937dc28) と出力されます。
- これはどういう意味でしょうか?
- これをMySQLに流し込むことは可能でしょうか?
よろしくお願い致します。
-------------------------------------
#!/usr/bin/perl \
use strict;
use warnings;
use Data::Dumper;
use JSON;
my $json_in = ' [{"name": "Wetpaint",
"permalink": "wetpaint"},
{"name": "AdventNet",
"permalink": "adventnet"},
{"name": "Zoho",
"permalink": "zoho"},
{"name": "Digg",
"permalink": "digg"} ] ';
my $perl_out = decode_json($json_in);
print $perl_out;
実際にJSONデータをMySQLに落とし込むサンプルにしてみました。
#HTML表示出力する
の所はおまけです。Dumperでどんなデータだったか表示しているだけです。
#!/usr/bin/perl use strict; use warnings; use lib qw(./); use Data::Dumper; use JSON; use DBI; use CGI qw(:standard -no_xhtml); my $q = new CGI; my $user = ''; my $passwd = ''; my $table_name = 'testtable'; my $db = DBI->connect('DBI:mysql:testdb:localhost', $user, $passwd); my $sth; my $json_in = ' [{"name": "Wetpaint", "permalink": "wetpaint"}, {"name": "AdventNet", "permalink": "adventnet"}, {"name": "Zoho", "permalink": "zoho"}, {"name": "Digg", "permalink": "digg"} ] '; my $outdata = decode_json($json_in); # データをMySQLにINSERTする foreach my $data (@{$outdata}) { # 配列毎に処理する my $name = $data->{name}; my $permalink = $data->{permalink}; $sth = $db->prepare("insert into $table_name (name , permalink) values (? , ?);"); $sth->execute($name, $permalink); } $sth->finish; $db->disconnect; #HTML表示出力する print $q->header( '-Content-Type' => 'text/html', '-charset' => 'UTF-8', ); print "<pre>". Dumper($outdata) . "</pre>";
- これはどういう意味でしょうか?
格納されたオブジェクトのアドレスを示しています。
- これをMySQLに流し込むことは可能でしょうか?
できません。
JSONは構造を持っていますから、その構造をどのような形でMySQLに反映させるかで、格納の仕方が変わってきます。
ありがとうございます。
上記JSONの構造をテーブル上に変換し
MySQLに格納するにはどうしたらよいでしょうか?
やり方が記載されているURL等でも構いません。
上記JSONの構造をテーブル上に変換し
仰っている意味が分かりません。
JSONからCREATE TABLEするには、JSON側に必要が情報が不足しています。
既存のTABLEにINSERTするという意味ならば、
TABLEの構造が分からないとお答えしようがありません。
実際にJSONデータをMySQLに落とし込むサンプルにしてみました。
#HTML表示出力する
の所はおまけです。Dumperでどんなデータだったか表示しているだけです。
#!/usr/bin/perl use strict; use warnings; use lib qw(./); use Data::Dumper; use JSON; use DBI; use CGI qw(:standard -no_xhtml); my $q = new CGI; my $user = ''; my $passwd = ''; my $table_name = 'testtable'; my $db = DBI->connect('DBI:mysql:testdb:localhost', $user, $passwd); my $sth; my $json_in = ' [{"name": "Wetpaint", "permalink": "wetpaint"}, {"name": "AdventNet", "permalink": "adventnet"}, {"name": "Zoho", "permalink": "zoho"}, {"name": "Digg", "permalink": "digg"} ] '; my $outdata = decode_json($json_in); # データをMySQLにINSERTする foreach my $data (@{$outdata}) { # 配列毎に処理する my $name = $data->{name}; my $permalink = $data->{permalink}; $sth = $db->prepare("insert into $table_name (name , permalink) values (? , ?);"); $sth->execute($name, $permalink); } $sth->finish; $db->disconnect; #HTML表示出力する print $q->header( '-Content-Type' => 'text/html', '-charset' => 'UTF-8', ); print "<pre>". Dumper($outdata) . "</pre>";
ありがとうございます! うまく行きました。
コードまで書いて頂き感激です。
ありがとうございます! うまく行きました。
コードまで書いて頂き感激です。