【问题标题】:How do i pass a variable for the query in a get Manager call?如何在 get Manager 调用中为查询传递变量?
【发布时间】:2013-02-03 22:44:02
【问题描述】:

我正在尝试进行简单的 Rose DB 调用: $id = xyz; $name = "公司";

DataB::testTable::Manager->get_testTable( query =>[ id => $id, name => $name ] );

可能不会每次都编写整个查询,并将其声明为字符串变量,以便我可以调用

DataB::testTable::Manager->get_testTable( query =>[ $query ] );

其中 $query = qq { id => $id , name => $name };

请帮忙

【问题讨论】:

  • 这个参数 (query =>[ id => $id, name => $name ] ) 看起来像一个带有键 query 的散列,其中包含一个数组。是这样吗?
  • 是的。我能说的最好的方法是,“散列的散列称为查询”
  • 试试编辑后的答案!

标签: perl mason rose-db-object


【解决方案1】:

根据您的问题我理解,我给出了这个答案。 试试这个。

罢工>

my $myquery = {query =>{ id=>$id, name=>$name }} ;

TGI::testTable::Manager->get_testTable($myquery);

希望,这能给你一些想法。

编辑“带有数组引用的哈希”:

my $myquery = [ id=>$id, name=>$name ] ;

TGI::testTable::Manager->get_testTable(query => $myquery);

看看这个:How to pass a a string variable as "query" for get Manager call?

【讨论】:

    【解决方案2】:

    其实我想出了如何做到这一点。它没有那么复杂。唯一的问题是 RoseDB 对象期望查询的数组引用。所以像这样的工作:

    我的@query = (id => $id, name => $name);

    testDB::testTable::Manager->get_testTable( query => \@query );
    

    只是想自己回答一下,以防有人正在寻找解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 2018-02-17
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      相关资源
      最近更新 更多