2013-02-02 81 views
0

我有一个用户类,我想知道什么是“最推荐”的方式来处理插入?将查询数据传递给方法的正确方法?

选项1:使用现有对象

// insert a new user and return the user id 
public function insert() { 
    $sql = "INSERT INTO users (username, password, email, avatar, subscribe, created, last_login, valid) VALUES 
           (?, ?, ?, ?, ?, ?, ?, ?)"; 
    $sth = $this->db->prepare($sql); 
    $sth->bindParam(1, $this->username, PDO::PARAM_STR); 
    $sth->bindParam(2, $this->password, PDO::PARAM_STR); 
    $sth->bindParam(3, $this->email, PDO::PARAM_STR); 
    $sth->bindParam(4, $this->avatar, PDO::PARAM_STR); 
    $sth->bindParam(5, $this->subscribe, PDO::PARAM_STR); 
    $sth->bindParam(6, $this->created, PDO::PARAM_STR); 
    $sth->bindParam(7, $this->last_login, PDO::PARAM_STR); 
    $sth->bindParam(8, $this->valid, PDO::PARAM_STR); 
    $sth->execute(); 

    return $this->db->lastInsertId(); 
} 

选项2:传递信息在作为数组

// insert a new user and return the user id 
public function insert(array $fields = array()) { 
    if(!empty($fields)) { 
     $sql = "INSERT INTO users (username, password, email, avatar, subscribe, created, last_login, valid) VALUES 
            (:username, :password, :email, :avatar, :subscribe, :created, :last_login, :valid)"; 
     $sth = $this->db->prepare($sql); 
     $sth->execute($fields); 

     return $this->db->lastInsertId(); 
    } 
} 

另一种选择?它有什么区别?

+0

刚刚[KeepItSimple(http://c2.com/cgi/wiki?KeepItSimple) – EthanB

回答

0

这两种方法都不错,但我个人认为第二个选项

+0

为什么你喜欢的第二个选项有什么特别的原因吗? –

相关问题