私はこのコードを書いています。存在しないものが見つかるまで名前を確認し続けなければなりません。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]と等しくないでしょう。$ repeatは0に設定され、ループは終了します。それは私が思うものです... – prgrm
私はプログラムの外を意味しました。データベースに適切なテーブルがあり、このクエリが結果を返すための正しいデータがテーブルに含まれていることを確認してください。 – AntonH