有没有办法重用DBI准备语句中使用的?请考虑以下代码:
$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(?:1),C(?:1)"); $sth->execute($a);
请注意,只有一个$a传递给execute而不是三个.有没有办法在现实生活中做到这一点?
解决方法
这取决于你的DBD.例如,使用带有$1样式占位符的DBD :: Pg,或带有命名占位符和bind_param的DBD :: Oracle,您可以完全按照自己喜欢的方式执行操作.但是使用一般目的?在DBI范围内工作的占位符样式,这是不可能的.