我有一个只产生一行和一列的 mysql 查询,当以交互方式检查查询时,我可以看到结果,这就是我想要的。但是当我使用时,
$sth->fetchrow_hashref;
我得到了 undef。有谁知道这里可能出了什么问题?我很感谢任何方向上的任何一点。y 会产生你的结果。
这是在执行后直接完成的:
sub _get_next_hashref
{
my $self = shift;
if($self->{sth} ne '') {
if(my $hash_ref = $self->{sth}->fetchrow_hashref)
{
return $hash_ref;
} else {
$self->{sth} = '';
return undef;
}
} else {
return undef;
}
}
一些附加信息:
执行的查询以 结尾limit 1
,因此始终应该只有一行。出于某种原因,否则会导致更多行的数据内工作完美,但仅产生单行结果的数据内数据不起作用。
$sql = "select sort_order from forum.metatag_sort where metatag=? order by id desc limit 1";
$self->{sth} = $self->{dbh}->prepare($sql);
if($self->{sth}->execute(@args)) {
return _get_next_hashref();
}
@args 中只有元标记,一个 int。
返回大于 1 的答案的情况对我来说完美无缺,但是返回正好 1 的情况会失败
。
select count(sort_order) from forum.metatag_sort where metatag=?