# man > Class::DBI::Search::Basic(3pm)

---
type: CommandReference
command: Class::DBI::Search::Basic
mode: perldoc
section: 3pm
source: perldoc
---

## Quick Reference
- `my $searcher = Class::DBI::Search::Basic->new($class, @args)` — Instantiate a searcher
- `my @results = $searcher->run_search` — Execute search, return list of objects
- `my $iter = $searcher->run_search` — Execute search, return iterator (scalar context)
- `$searcher->opt('order_by')` — Retrieve named option from search arguments
- `__PACKAGE__->add_searcher(search => 'Class::DBI::Search::Basic')` — Register default search in a Class::DBI subclass
- Override `sql()`, `bind()`, or `fragment()` in a subclass for custom SQL generation

## Name
Simple `Class::DBI` search plugin.

## Synopsis
perl
my $searcher = Class::DBI::Search::Basic->new($cdbi_class, @search_args);
my @results  = $searcher->run_search;

# In your Class::DBI subclass:
__PACKAGE__->add_searcher(
    search  => 'Class::DBI::Search::Basic',
    isearch => 'Class::DBI::Search::Plugin::CaseInsensitive',
);
## Methods
- `new($cdbi_class, @search_args)` — Constructor; takes the result class and the arguments passed to the search call.
- `opt($option_name)` — Returns the value of a named option from the search arguments (options hash).
- `run_search()` — Executes the search. In list context returns an array of objects; in scalar context returns an iterator.

## Subclassing
Override these methods to customise SQL generation:
- `fragment()` — Returns the WHERE clause fragment.
- `sql()` — Returns the complete SQL statement (default: `$cdbi->sql_Retrieve($self->fragment)`).
- `bind()` — Returns the bind values for placeholders.

The default `run_search()` implementation is:
perl
return $cdbi->sth_to_objects($self->sql, $self->bind);
## See Also
- [Class::DBI](http://localhost/phpMan.php/perldoc/Class%3A%3ADBI/markdown)
- [Class::DBI::Search](http://localhost/phpMan.php/perldoc/Class%3A%3ADBI%3A%3ASearch/markdown)
- [Class::DBI::Search::Plugin::CaseInsensitive](http://localhost/phpMan.php/perldoc/Class%3A%3ADBI%3A%3ASearch%3A%3APlugin%3A%3ACaseInsensitive/markdown)