#mysql #sql #syntax
#mysql #sql #синтаксис
Вопрос:
Может ли кто-нибудь просмотреть это утверждение? Я продолжаю получать синтаксическую ошибку, и я в тупике относительно того, что не так.
mysql_query("INSERT INTO emails (to, from, subject, content, ip) VALUES('$email_to', '$email_from', '$subject', '$content', '$ip' ) ")
Спасибо!
РЕДАКТИРОВАТЬ: Ошибка
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''to', 'from', subject, content, ip) VALUES('[MY EMAIL ADDRESS]', 'l', 'hi', ' at line 1
РЕДАКТИРОВАТЬ 2:
Я очистил.
$email_to = mysql_real_escape_string($_POST['email_to']);
$email_from = mysql_real_escape_string($_POST['email_from']);
$subject = mysql_real_escape_string($_POST['subject']);
$content = mysql_real_escape_string($_POST['content']);
Комментарии:
1. какое сообщение об ошибке вы получаете.
2. Очень сложно найти синтаксическую ошибку SQL без реального запроса и сообщения об ошибке.
3. Помимо синтаксических ошибок, это действительно плохая идея позволить кому-то проводить атаки с использованием SQL-инъекций, отправляя вам электронное письмо.
4. Извините, я введу сообщение об ошибке, но оно просто общее. Марко решил это.
5. @Wooble я избегаю кода, отправленного пользователем ранее на странице.
Ответ №1:
Попробуйте это:
mysql_query(
"INSERT INTO emails (`to`, `from`, subject, content, ip)
VALUES('$email_to', '$email_from', '$subject', '$content', '$ip' )")
Я думаю, что возникает ошибка, потому from
что это зарезервированное слово … обратные ссылки должны решить эту проблему.
Помните, что вы всегда ДОЛЖНЫ очищать пользовательский ввод, чтобы избежать SQL-инъекции!!
Комментарии:
1. Спасибо! Я этого не знал. Для чего зарезервированы слова?
2. @Sam: зарезервированные работы — это (я скажу вам простым способом) те, с помощью которых database Engine создает свой язык запросов. Взгляните сюда
3. @Sam: tobyodavies прав, вы всегда ДОЛЖНЫ очищать пользовательский ввод, чтобы избежать SQL-инъекции!!!
Ответ №2:
Возможно, экранировать поле «from», так как from — это ключевое слово;