- 论坛徽章:
- 0
|
我想将一个文件中的内容添加到数据库中,其中文件格式如下:
- ......
- body DEAR_SOMETHING /\bDear (?:IT\W|Internet|candidate|sirs?|madam|investor|travell?er|car shopper|web)\b/i
- describe DEAR_SOMETHING Contains 'Dear (something)'
- score DEAR_SOMETHING 1.483
- header DATE_IN_PAST_24_48 eval:check_for_shifted_date('-48', '-24')
- describe DATE_IN_PAST_24_48 Date: is 24 to 48 hours before Received: date
- score DATE_IN_PAST_24_48 1.955
- ......
复制代码
代码如下:
- open FH,$rulefile or die "Cant open the rule file";
- my %formscore,%formregex,%formdescribe,%formtype;
-
- while($line=<FH>){
- $line=~s/^#.*$//;
- $line=~s/^\s+//;
- $line=~s/\s+$//;
- next unless($line);
- ($type,$name,$detail)=split (/[\s\t]+/,$line,3);
- if($type eq "score"){
- $formscore{$name}=$detail;
- }elsif($type eq "describe"){
- $formdescrgibe{$name}=$detail;
- }else{
- $formtype{$name}=$type;
- $formregex{$name}=$detail;
- }
- }
- close FH;
- @number=keys(%formscore);
- foreach my $temp (@number){
- $sth1 = $dbh->prepare("select count(name) from rule where name = '$temp'") or die "cant prepare!!!!\n";
- $sth1->execute or die "cant execute!!!!\n";
- $check = $sth1->fetchrow_array();
- if($check== 0){ ###insert if not exist
- $sth2 = $dbh->prepare("insert into rule values($temp,$formtype{$temp},$formdescribe{$temp},'$formregex{$temp}',$formscore{$temp})") or die "cant prepare!!!!\n";
- $sth2->execute or die "cant execute!!!!\n";
- }
- }
复制代码
错误信息如下:
- [Sun Apr 22 03:51:43 2007] [error] [client 202.115.30.166] DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/\\bDear (NULL:IT\\W|Internet|candidate|sirsNULL|madam|investor|travellNULLer|car ' at line 1 at /usr/local/apache/cgi-bin/aone/test.cgi line 94., referer: http://202.115.30.241/cgi-bin/aone/rule.cgi
- [Sun Apr 22 03:51:43 2007] [error] [client 202.115.30.166] cant execute!!!!, referer: http://202.115.30.241/cgi-bin/aone/rule.cgi
- [Sun Apr 22 03:51:43 2007] [error] [client 202.115.30.166] Premature end of script headers: test.cgi, referer: http://202.115.30.241/cgi-bin/aone/rule.cgi
复制代码
请朋友们多多指教。 |
|