Прежде всего, вы должны экранировать свои данные , прежде чем вводить их в свой запрос SQL.
Это можно сделать с помощью функции mysql_real_escape_string
, например:
$name = mysql_real_escape_string($_POST['name']);
// ... same for other fields that contain strings
$comments = mysql_real_escape_string($_POST['comments']);
Это обеспечит экранирование кавычек в ваших данных и не будет мешать тем, которые находятся вокруг данных полей в запросе SQL, во-первых.
И, во-вторых, это поможет вам предотвратить SQL-инъекции .
Кроме того, в случае ошибки во время выполнения запроса, mysql_query
вернет false
- что означает, что вы должны проверить значение, возвращаемое этой функцией - для возможной регистрации причины ошибка:
$result = mysql_query($query);
if ($result === false) {
// An error has occured...
echo mysql_error();
}
Примечание: здесь я только что отобразил сообщение об ошибке - но вместо этого вы должны зарегистрировать ошибку где-нибудь (например, в файле) , прежде чем запускать ваше приложение в производство: ваши пользователи этого не делают нужно (или не хотеть) , чтобы увидеть любое сообщение о технической ошибке!