嗨,我遵循OTRS开发人员手册在模块内部使用sql查询。

我运行以下查询,但仅从结果中获取第一个值。

  my $SQL = "SELECT id FROM roles ";

  $Self->{DBObject}->Prepare(SQL => $SQL, Limit => 15);

  my @Row = $Self->{DBObject}->FetchrowArray();


如果我检查@Row数组的大小,我得到一个,但实际上我在角色表中创建了许多角色。

有人可以告诉我缺少什么吗?

最佳答案

我无法在注释中将代码段添加到其他答案,但是可以了;
FetchrowArray()将为结果的一行返回一个列列表,因此您必须像下面这样迭代它;如所指出的。而且,如果要将所有结果添加到数组中,只需使用push。

$Self->{DBObject}->Prepare(
    SQL   => "SELECT id FROM table",
    Limit => 10
);

my @IDs;
while ( my @Row = $Self->{DBObject}->FetchrowArray() ) {
    push @IDs, $Row[0];
}

关于mysql - 使用Mysql查询的OTRS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18617149/

10-13 01:07