이 코드를 작성했습니다 : 존재하지 않는 것을 발견 할 때까지 이름을 계속 확인한 다음 계속해야합니다.Perl은 while 루프에서 SQL 문을 실행하지 않습니다.
while ($repeating == 1) {
$new_name = $i . "_" . $file;
my $sql= "SELECT file_name FROM PDFdocument WHERE user_id = '$id' AND file_name = '$new_name' ";
my $sth = $dbh->prepare($sql);
$sth->execute();
while (my @row = $sth->fetchrow_array) {
//never enters here
if ($new_name ne $row[0]) {
$repeating = 0;
}
}
$i++;
}
그것은 결코 두 번째 while
루프에 들어갑니다, 그래서 그것은이 반복 루프에 갇혀됩니다. 나는 그것이 왜 효과가 있는지 모른다. 전에 다른 SQL 문을 수행하고 모두 작동합니다. 이것은 작동하지 않는 유일한 방법입니다.
어떤 도움이 필요합니까?
그리고 쿼리가 실제로 데이터를 반환 할 것이라고 확신합니까? (그냥 ... ...) – AntonH
@AntonH 만약 데이터를 반환하지 않으면 $ new_name은 $ row [0]과 같지 않을 것입니다. $ repeating은 0으로 설정되고 루프는 끝납니다. 그게 내가 생각하는거야. – prgrm
나는 프로그램 밖에서 의미했다. 데이터베이스에 올바른 테이블이 있고이 테이블에 결과를 반환하는 데 적합한 데이터가 포함되어 있는지 확인하십시오. – AntonH