2012-04-25 4 views
1
public function save(User $user_object) 
{ 
    $data = array(); 

    $data[] = $user_object->username; 
    $data[] = $user_object->email; 
    $data[] = $user_object->password; 

    if (is_null($user_object->id)) { 
     $data[] = $user_object->salt; 
     $data[] = time(); 
     $sth = $this->db->prepare("INSERT INTO users (username, email, password, salt, created) VALUES (?, ?, ?, ?, ?)"); 
     $sth->execute($data); 
    } else { 
     //Update User 
    } 
} 

Как вы можете видеть, нет ли идентификатора, будет ли вставка, если есть идентификатор, но будет обновление. Однако я не уверен, как инструкция UPDATE в PDO будет выглядеть, я хочу нажать все данные, находящиеся в массиве, где ID = $ user_object-> id.User save (update) PDO

ответ

1

В UPDATE нет инструкции UPDATE. Существует только обычный запрос SQL UPDATE. PDO не имеет собственного SQL. это просто API для отправки SQL-запроса на сервер БД.

Таким образом, просто написать обычный SQL с заполнителей

UPDATE users SET username=?, email=?, password=?, salt=? WHERE id=?