1. Все строковые данные в запросе к БД в т.ч. и даты, должны быть в кавычках (одинарных или двойных, чаще бывает в одинарных).
2. Спецсимволы должны экранироваться обратным слэшем, например - (Маша по прозвищу \'Грей\'). Добавленные слэши в БД не добавляются, поэтому при выводе из базы stripslashes применять не нужно.
3. Числа так же можно прослэшивать как и строки или приводить к нужному типу, например - intval($id).
4. Имена полей и таблиц следует заключать в обратные кавычки, эта клавиша находится слева от клавиши "1".
5. Опция волшебные кавычки экранирует данные от пользователя еще до попадания их в скрипт, поэтому могут быть неожиданные результаты. Так же при использованию кодировки unicode "волшебные кавычки" могут принять часть кодировки (мультибайтной) за спецсимвол и заслэшить его, что приведет к некорректной обработке/отображении информации. Поэтому опцию "волшебные кавычки" отключают и делают прослэшивание вот так:
$name = mysql_real_escape_string($name);
$query = "INSERT INTO `table_name` (name) VALUES ('$name')";
если запрос с оператором LIKE, то
$query = "SELECT * FROM `table_name` name LIKE
'".mysql_real_escape_string($_GET['name'])."%'";
Вместо $_GET['name'] вернее будет прописать $get_name, предварительно обрезав пробелы, если есть и ограничив длину при необходимости (ф. - trim, substr). Для структурной проверки информации используйте ф. - filter_var
6. Если в запросе есть динамически меняющиеся команды SQL или имена полей то все варианты подстановки необходимо прописывать отдельно, не вставлять их напрямую из запросов. Это от SQL инъекций.