Годный ли обработчик формы?
Не делайте такие длинные методы. Не копипасте. Отделяйте построение запроса от данных. И не надо все делать static.public static function saveStaff($options) 
{
    if (self::isValidStaff($options)) {
        $staffFields = self::getFilledStaffFileds($options);
        $qb = new QueryBuilder( Db::getConnection() );
        $qb->where('id = 1')->update('staff', $staffFields);
    }
}

public static function getFilledStaffFileds($options)
{
    $staff = [];
    if ($options['director_surname']) {
        $staff['surname'] = $options['director_surname'];
    }
    if ($options['director_surname']) {
        $staff['name'] = $options['director_name'];
    }
    if ($options['director_surname']) {
        $staff['ot4'] = $options['director_ot4'];
    }
    if ($options['director_surname']) {
        $staff['oklad'] = $options['director_oklad'];
    }
    if ($options['director_surname']) {
        $staff['date_start'] = $options['director_date_start'];
    }

    return $staff;
}

function static function isValidStaff($options)
{
  return isset($options['surname']) 
    || isset($options['name'])
    || isset($options['ot4']) 
    || isset($options['oklad'])
    || isset($options['date_start']);
}
И использовать какой-нибудь построитель запросов, типа такого:class QueryBuilder {
    protected $db;
    protected $where = '';
    
    public function __construct($db) {
        $this->db = $db;
    }
    
    public function where($where)
    {
        $this->where = trim($where);
        return $this;
    }
    
    public function update($table, $params)
    {
        $values = [];
        foreach ($params as $key => $value) {
            $values[] = "`{$key}` = :{$key}";
        }
        
        $sql = 'UPDATE `' . $table . '` SET ' . join(', ', $values);
        if ($this->where) {
            $sql .= ' WHERE ' . $this->where;
        }

        $result = $this->db->prepare($sql);
        foreach ($params as $key => $value) {
            $result->bindParam(':' . $key, $value, PDO::PARAM_STR);
        }
        return $result->execute();
    }
}
P. S. Лучше пользоваться готовыми компонентами.
P. P. S. Наверняка есть опечатки, набирал без IDE.
Я бы заменил эту кучу if`ов на switch, типа:switch (true) {
    case !empty($options['director_ot4']):
    //some action
        break;

    case !empty($options['director_date_start']):
     //some action
          break;
}
И вместо условия проверки в начале вставил бы что-то типа if (empty($options)) {
    return;
}