我有一个名为 DB (class.pdo.php) 的类,它使用 PDO 和另一个名为 user 的类来处理我用来管理登录系统的 mysql 查询。
我的问题涉及始终必须在用户的每个公共函数中实例化 $db 以便我可以使用 DB。这有效率吗?我不应该在用户的 __construct() 中实例化数据库吗?
这是我的代码
require_once("../../class.pdo.php");
class user {
private $db = null;
public function __construct(){
/* Empty? */
}
public function find_by_email($email){
$db = new db();
$db->query('SELECT * FROM users WHERE email = :email LIMIT 1');
$db->bind(':email',$email);
$result = $db->single();
return $result;
}
public function create($email,$password,$first_name,$last_name){
$db = new db();
$db->query("INSERT INTO users(email,password,first_name,last_name,created_at) VALUES (:email,:password,:first_name,:last_name,NOW())");
$db->bind(':email',$email);
$db->bind(':password',$password);
$db->bind(':first_name',$first_name);
$db->bind(':last_name',$last_name);
$result = $db->execute();
return $db->lastInsertId();
}
[more similar functions ommited]