作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做很多插入查询,我认为最好为它编写一个子例程。类似于 insertRow($table, @stuff_to_insert)
。但是当涉及到 @stuff_to_insert
时,我如何才能使子例程动态化,它可以是 1-5 个参数中的任何值?
最佳答案
最好的解决方案可能是使用 ORM 系统,例如 DBIx::Class .它们使处理 SQL 变得更加容易。
如果您选择继续使用原始 DBI,我建议您使用如下准备好的语句:
my $query = sprintf 'INSERT INTO %s VALUES(%s)', dbh->quote_identifier($table), join ',', ('?') x $columns;
my $sth = $dbh->prepare($query);
for my $row (@rows) {
$sth->execute(@{$row});
}
这将带来速度和稳健性方面的优势。
您可以将其全部封装在一个子组件中,但无论如何 ORM 可能会提供更好的解决方案。
关于perl - 如何为具有不同数量值的 DBI 插入编写子例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/552866/
我是一名优秀的程序员,十分优秀!