Perlのプログラムでエラーが出ます。


普段PHPerなんですがbatchの関係でperlを使用しなければならなくなり書いていたんですが、
下記のソースコードの中でINSERT INTOの部分でエラーが発生してしまいます。

最初selectしている部分はcreate tableで作っているテーブル構成と同じです。

それからサイト名に関するレコード部分は*で隠しています。

よろしくお願いします。

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2013/12/29 00:50:03
id:unnoub

ソースコードになります。よろしくお願いします。

#!/usr/bin/perl

use DBI;

# データソース

$d = 'DBI:mysql:a_anime';

# ユーザ名

$u = '************';

# パスワード

$p = '************';

# データベースへ接続

$dbh = DBI->connect($d, $u, $p);

$sth = $dbh->prepare("select * from tweet where tweetid BETWEEN '1' AND '21562745' limit 5");

$sth->execute;

while( @row = $sth->fetchrow_array ){

$priduct_id = @row['3'];

$user_url= @row['6'];

$sth2= $dbh->prepare("show tables from a_anime like 'tweet_@row['3']'");

$sth2->execute;

@row2 = $sth2->rows;

$sth2->finish;

if (@row2 != 1){

$sth22= $dbh->prepare("CREATE TABLE `tweet_@row['3']` (

`id` int(255) NOT NULL auto_increment,

`userid` int(25) DEFAULT NULL,

`text` text NOT NULL,

`product_id` int(255) NOT NULL,

`product_name` varchar(30) NOT NULL,

`date` varchar(20) NOT NULL,

`user_url` varchar(160) NOT NULL,

`username` varchar(100) NOT NULL,

`flag` int(1) NOT NULL DEFAULT '1',

`rev_point` int(1) NOT NULL DEFAULT '1',

`t_tweetid` bigint(255) DEFAULT NULL,

`rev_id` int(10) DEFAULT NULL,

`rev_flag` int(1) NOT NULL DEFAULT '0',

`*****_flag` int(1) DEFAULT NULL,

`res_info` int(100) DEFAULT NULL,

`fav_info` int(255) DEFAULT NULL,

`user_img` varchar(200) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `index3` (`flag`),

KEY `user url` (`user_url`),

KEY `t_tweetid` (`t_tweetid`),

KEY `index4` (`flag`,`rev_point`,`product_id`),

KEY `index5` (`flag`,`product_id`),

KEY `index6` (`userid`,`flag`),

KEY `index7` (`username`,`flag`),

FULLTEXT KEY `index2` (`text`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8");

$sth22->execute;

$sth22->finish;

}

$sth3= $dbh->prepare("select user_url from tweet_@row['3']");

$sth3->execute;

print "@row['3']\n";

print "@row['6']\n";

@row3 = $sth3->fetchrow_array;

$sth3->finish;

#if ($user_url != $row3){

print @row['2'] ;

print "\n";

$sth4 = $dbh->prepare("INSERT INTO tweet_@row['3'] VALUES (@row['1'],@row['2'],@row['3'],@row['4'],@row['5'],@row['6'],@row['7'],@row['8'],@row['9'],@row['10'],@row['11'],@row['12'],@row['13'],@row['14'],@row['15'],@row['16'])");

print $sth4;

print "\n";

$sth4->execute;

$sth4->finish;

}

}

$sth->finish;

$dbh->disconnect;

回答0件)

回答はまだありません

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません