/**
  * @param string $table
  * @param array $data
  * @return bool
  */
 public function update($table = '', array $data = array())
 {
     $sql = sprintf('UPDATE %s SET ', $table !== '' ? $this->db->quoteIdentifier($table) : $this->from);
     if (!empty($data)) {
         foreach ($data as $name => $value) {
             $sql .= sprintf('%s = %s,', $this->db->quoteIdentifier($name), $this->db->quote($value));
         }
     } else {
         foreach ($this->data as $name => $value) {
             $sql .= sprintf('%s = %s,', $name, $value);
         }
     }
     $sql = rtrim($sql, ',');
     if ($this->where !== '') {
         $sql .= ' WHERE ' . $this->where;
     }
     if ($this->orderBy !== '') {
         $sql .= ' ORDER BY ' . $this->orderBy;
     }
     if ($this->limit !== '') {
         $sql .= $this->limit;
     }
     $sql .= ';';
     $this->reset();
     return $sql;
 }