Substring search on multiple attributes public function getData ($term) {
        $db = Database::getInstance();

        $term = htmlentities($term);

        //Kill the script if the term is blank
        if ($term == "") {
            die();
        }

        $query = "SELECT * FROM coils WHERE name like '%$term%' or 
                                            resistance like '%$term%' or 
                                            wraps like '%$term%' or
                                            wire_one like '%$term%' or
                                            wire_two like '%$term%' or
                                            wire_three like '%$term%' or
                                            wire_four like '%$term%' or
                                            wire_five like '%$term%' or
                                            wire_six like '%$term%' 
                                            LIMIT 25";
        $prepareQuery = $db-&gt;getConnection()-&gt;prepare($query);
        $result = $prepareQuery-&gt;execute();
        $this-&gt;rowCount = $prepareQuery-&gt;rowCount();

        //Return the Query
        return $prepareQuery;
    }
You should create full text search indexes for these fields and use MATCH ... AGAINST

This way you can change this line to:

$query = "SELECT * FROM coils MATCH ( name, resistance, wraps, wire_1, wire_2, wire_3, wire_4, wire_5, wire_6) AGAINST ('$term') LIMIT 25";


Updated: If you want stick to string substitution when mounting your $query (like you did), make sure you have sanitized your $term variable in order to prevent SQL injection attacks. But it's highly recommended using bind solution nicely expanded below by @greg-burghardt.

More information about MATCH AGAINST can be found here: https://dev.mysql.com/doc/refman/5.7/en/fulltext-natural-language.html