有没有一种方法可以重用DBI prepare语句中使用的?。考虑以下代码:
$sth=$dbh->prepare("INSERT INTO mytable(a,b,c) SELECT ?,B(?),C(?)");
$sth->execute($a,$a,$a);
最好使用如下所示的方法:
#I'm making this up as something I hope exists
$sth=$dbh->prepare("INSERT INTO mytable(a,b,c) SELECT ?,B(?:1),C(?:1)");
$sth->execute($a);
请注意,只有一个
$a
传递给了execute,而不是三个。在现实生活中有没有办法做到这一点? 最佳答案
这取决于您的DBD。例如,使用具有$1
样式的占位符的DBD::Pg或具有命名的占位符和bind_param
的DBD::Oracle,您可以完全按照自己的意愿进行操作。但是,使用在DBI范围内均可使用的占位符的通用?
样式是不可能的。
关于perl - 在DBI上重用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3180940/