使用PDO预处理语句的最佳方法是什么?

时间:2010-12-09 00:16:00

标签: php pdo prepared-statement

在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(...);
    }
}

使用一种方法比另一种方法有内存/速度影响吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

如果您要多次发出相同的查询,只有不同的参数绑定到占位符,您应该尝试以可以重用该语句的方式构造代码。调用prepare会导致数据库为查询创建和缓存执行计划,您将在将来的调用中重复执行,从而使这些查询更快。