2013-05-18 5 views
0

У меня есть этот запрос для вставки в tbl_userprofile:Синтаксическая ошибка: MySQL Вставка Выберите

$SQL = "INSERT INTO tbl_userprofile (userId, name, surname, gender, nationality, address, mobile, department, email, question, answer) 
SELECT tbl_user.Id , '$name', '$surname', '$gender', '$nationality', '$address','$mobile', '$department', '$email', '$question', '$answer' 
FROM tbl_user 
WHERE username = '$uname'"; 

я получаю синтаксическую ошибку, говоря: «У вас есть ошибка в вашем SQL синтаксиса, проверьте руководство, которое соответствует ваша версия сервера MySQL для правильного синтаксиса для использования рядом с «pet-peeve», «dirt» FROM tbl_user WHERE username = 'alex' 'по строке 2 "

ПРИМЕЧАНИЕ: проблема с пистолетом и грязью - вопрос и ответ. Я не знаю, как я получаю синтаксическую ошибку. Пожалуйста, где моя синтаксическая ошибка? Благодаря

+0

попытаться закодировать ваше заявление INSER с явными значениями иметь тест и запустить его из клиента запросов mysql. – gpicchiarelli

+0

Я не вижу никакой ошибки в синтаксисе, за исключением того, что заявление уязвимо для SQL-инъекции. Не могли бы вы повторить свой запрос перед выполнением его в базе данных? –

+1

В этих двух последних местах может быть какой-то простой текст, поэтому, возможно, есть цитата, лучше использовать [addslashes()] (http://php.net/manual/en/function.addslashes.php) для вашего '$ question' и '$ answer' – Fabio

ответ

1

Там могут быть некоторые простой текст в этих двух последних местах, так, может быть, есть цитаты вокруг, лучше использовать addslashes() своим $question и $answer переменных

'$email', '".addslashes($question)."', '".addslashes($answer)."' FROM tbl_user