在PDO中使用预准备语句时,我应该为每个db调用“构建”一个预准备语句,还是可以为所有调用使用一个语句? 例如:
class DB{
...
function query($sqlStatementString,$data){
$this->sth->prepare($sqlStatementString);
$this->sth->execute($data);
}
...
}
OR
class User{
...
function doSomething(){
$sthForDoSomething->prepare(...);
$sthForDoSomething->execute(...);
}
...
function jump(){
$sthForJump->prepare(...);
$sthForJump->execute(...);
}
}
使用一种方法比另一种方法有内存/速度影响吗? 谢谢!
答案 0 :(得分:1)
如果您要多次发出相同的查询,只有不同的参数绑定到占位符,您应该尝试以可以重用该语句的方式构造代码。调用prepare会导致数据库为查询创建和缓存执行计划,您将在将来的调用中重复执行,从而使这些查询更快。