2

perl dbi中的以下代码有什么区别?

1.

while (my ($p1, $p2, $p3) = $sth->fetchrow_array()) {
    # ... some code ...
}

2.

$sth->bind_columns(\my ($p1, $p2, $p3));
while ($sth->fetch) {
    # ... some code ...
}

两者都导致相同的结果。Perlmonks 建议使用绑定变体。如果有人解释原因,我将不胜感激。

4

1 回答 1

1

文档说,绑定是获取数据的更有效方式:

绑定是使用 Perl 别名在低级别执行的。每当从数据库中提取一行时,$var_to_bind 似乎会自动更新,因为它现在引用与相应列值相同的内存位置。这使得使用绑定变量非常有效。

于 2013-08-23T07:30:35.670 回答