-1

注意:我已经更正了变量差异,它确实打印了第一组的查询,但它没有从第二组返回任何内容。如果我只使用第二组,它会起作用。

在下面的代码中,我有一些数组,它是数组的数组,该数组包含名称之类的文本。所以@some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]); 现在,当我首先查询 'sam jon july' 和 'mike han tommy' 这样的列表时。只有执行从第一个列表中返回结果,其他人是 undef。我不知道为什么会有任何帮助。

my $pointer;
my $db = $db->prepare_cached("
        begin
                :pointer := myFun(:A1);
        end;
                ") or die "Couldn't prepare stat: " . $db->errstr;
$db->bind_param_inout(":pointer",\$pointer,0,{ ora_type => ORA_RSET });

for (my $i=0; $i < @some_array ; $i++) {
        my @firstarray = @{$some_array[$i]};
        my $sql = lc(join(" ", @firstarray));
        print "<pre>$sql</pre>\n";
        $db->bind_param(":A1",$sql);
        $db->execute();
        print "<pre>".Dumper($db->execute())."</pre>\n";
 }
4

1 回答 1

2

Just like everyone told you on the last question you asked, initialize your array with parentheses, not nested brackets.

@some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny])

not

@some_array= [[sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]]

You would also benefit tremendously from including

use strict;
use warnings;

at the top of all of your programs. That would catch the strange way you are trying to initialize @some_array, and it would catch your inconsistent usage of @sql and @query. update and $sdh and $db and $dbh.

于 2013-03-18T22:06:56.690 回答