2013-11-22 33 views
1

我已經離開了mysql和perl遊戲很多年了,似乎無法得到這個權利。我有一張只有3列的桌子。 'cnt'就是其中之一。我想要做的就是查詢'name'上的表並查看名稱是否存在。如果是這樣,我想捕捉'cnt'的值。該表有一個testName的記錄,值爲2,我手動添加。當這個腳本運行時,它返回空。簡單的perl mysql查詢不起作用

my $count; 
my $pop = qq(SELECT cnt FROM popular WHERE name="testName"); 
my $sth = $dbh->prepare($pop); 
$sth->execute() or die $dbh->errstr; 

my @return; 

while (@return = $sth->fetchrow_array()) { 
    $count = $return[1]; 
} 

print "our return count is $count"; 

這對任何人都很明顯,我做錯了什麼?

+0

確實「返回空」意味着它甚至不打印出「我們的退貨計數是」? – ysth

+0

它打印出字符串,但在「is」後停止。 $ count不包含任何內容。 –

+2

在[PerlMonks]上交叉發佈(http://perlmonks.org/index.pl?node_id=1063854)。 – Kenosis

回答

3

你大概的意思

$count = $return[0]; 
0

根據​​

的替代fetchrow_arrayref。獲取下一行數據並將其作爲包含字段值的列表返回。 由於您選擇cnt作爲返回值,因此,@return的大小爲1,但您誤解爲符合您的查詢條件的結果數。否則,不是這樣!請仔細閱讀perl文件。