Хорошим вариантом является использование mysql_real_escape_string для поискового запроса. Однако вы должны знать о 2 вещах:
1) Если вы применяете это решение в другой ситуации, убедитесь, что параметр всегда указан в кавычках, когда он интегрируется. Короче говоря, mysql_real_escape_string не защищает вас от числовых параметров. Вот 2 примера:
$bad_sql = "SELECT * FROM some_table WHERE id=" . mysql_real_escape_string($_GET['id']);
$good_sql = "SELECT * FROM some_table WHERE name='" . mysql_real_escape_string($_GET['id']) . "'";
2) Второе, что нужно учитывать, это то, что mysql_real_escape_string не экранирует подстановочные символы (% и _). Вы не должны беспокоиться об этом. Однако «идеальное» решение избегает этих персонажей.
Для получения дополнительной информации вы можете посмотреть на http://www.sqlinjection.net.
К вашему сведению: официальная ссылка на mysql_real_escape_string http://php.net/manual/en/function.mysql-real-escape-string.php.