我正在构建一个类来处理数据库操作,我决定使用 PDO。
起初我决定使用静态方法来简化调用,因为属性不改变,方法是独立的,所以我不需要保存对象的引用。但是,使用此解决方案,我必须为此类类的某些方法的每次调用实例化一个新的 PDO 对象,连接到数据库,然后准备查询并执行。
Bellow 是此类的插入方法的基础示例:
public static function insert($table, $columns, $values){
$dbConnection = new PDO('mysql:dbname='.self::$db.'; host='.self::$host.'; charset=utf8', self::$login, self::$pass);
... create the sql query and the associative array of values
$stmt = $dbConnection->prepare($sql);
$stmt->execute($array_aux);
}
所以我想知道在每次调用中实例化 PDO 对象是否效率太低,如果我最好存储 PDO 引用,那么不要使用静态方法。
ps:我知道有些人讨厌静态方法,因为它们很难进行单元测试,但在某些情况下它们非常方便。