-1
我收到此錯誤DBD :: mysql的:: ST執行所失敗:當172需要
DBD::mysql::st execute failed: called with 181 bind variables when 172 are needed at line 110, <$fh> line 1.
我認爲問題在於代碼
while (my $row = <$fh>) {
chomp $row;
my @DNA = split('\|', $row);
my $participant_id = $DNA[0];
$participant_id =~ s/\>//g;
my $array = $DNA[1];
my $length = length $array;
$array =~ tr/a-z/A-Z/;
$array =~ s/(...)/$1 /g;
$array =~ s/\s+/,/g;
my @DNA1 = split (',', $array);
unshift @DNA1, $participant_id;
$sth4->execute(@DNA1); # Line 110
}
$sth4->finish;
的這一部分中調用181個綁定變量
有用的錯誤信息。你的'@ DNA'的列數多於相應的SQL語句所知。查找SQL語句的定義位置(在代碼中查找$ sth4),然後查看是否可以找出要執行的操作。您可能需要更改SQL來適應您的數據大小。 – xxfelixxx
您可以通過啓用跟蹤來查看它正在嘗試運行的SQL:http://stackoverflow.com/questions/5885561/dump-prepared-sql-query-from-dbi-statement-in-perl – xxfelixxx
謝謝@xxfelixxx,這給了我一些繼續。 –