MySQL操作程序七

返回

检查enq1和enq2的关系(check_enq1_enq2.pl)

use strict; use DBI; my(%t,$n,@fld,@rec,$pref); # 连接数据库 $$pref{dsn} = "DBI:mysql:host=localhost;database=cookbook"; $$pref{dbh} = DBI->connect($$pref{dsn}, "cbuser", "cbpass") or die "Cannot connect to server\n"; $$pref{dbh}->do("SET NAMES utf8"); if(!$$pref{dbh}){ print "SQL read ERROR!\n"; exit; } # 取出所有enq1的enq2s $t{sth} = $$pref{dbh}->prepare("SELECT id,enq2s FROM enq1"); $t{sth}->execute; while ( @rec = $t{sth}->fetchrow_array ) { @{ $t{enq2} } = split(/=/,$rec[1]); for $n ( 0 .. $#{ $t{enq2} } ) { if ( $t{list}{$t{enq2}[$n]} ) { print "NO,enq1=$rec[0],enq2=$t{enq2}[$n]\n"; } else { $t{list}{$t{enq2}[$n]} = $rec[0]; } } } $t{sth}->finish; # 检查取出的enq2的enq1id for $n ( sort {$a<=>$b} keys %{ $t{list} } ) { $t{enq1} = $$pref{dbh}->selectrow_array("SELECT enq1id FROM enq2 WHERE id = $n"); if ($t{enq1} == $t{list}{$n} ) { # print "$n==>$t{list}{$n}=>$t{enq1},OK!\n"; } else { print "$n==>$t{list}{$n}=>$t{enq1},NOT OK!\n"; } } # 关闭数据库 $$pref{dbh}->disconnect;
返回