2015-02-02 3 views
0

Я пытаюсь обновить таблицу динамически здесьОбновления MySQL таблица динамически

$QUERY = "UPDATE `internshala`.`student` SET `High_School` = \'$High_School\', `HS_Percentage` = \'$HS_Percentage\', `Intermediate` = \'$Intermediate\', `I_Percentage` = \'$I_Percentage\', `Graduation` = \'$Graduation\', `G_Score` = \'$G_Score\', `G_Year` = \'$G_Year\', `PG_Year` = \'$PG_Year\', `PostGraduation` = \'$PostGraduation\', `PG_Score` = \'$PG_Score\' WHERE `student`.`id` = '$_SESSION['user_id'];"; 

Он бросает ошибку syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

Я не могу понять правильный синтаксис для этого, выше используемого синтаксиса является то, Я вывел из phpmyadmin.

PS: Все переменные, используемые в операторе обновления, устанавливаются в значение, отличное от нуля.

ответ

2

С вашим запросом связано множество проблем. Вы избегаете одинарных кавычек, используя двойные кавычки, чтобы определить свою строку. Вам это не нужно.

SET `High_School` = \'$High_School\', 

следует читать

SET `High_School` = '$High_School', 

Кроме того, вы используете переменные сессии в конце и не закрывая цитату

WHERE `student`.`id` = '$_SESSION['user_id'];"; 

Вы должны вложить элемент массива в фигурных скобках и закрыть одну котировку:

WHERE `student`.`id` = '{$_SESSION['user_id']}';"; 

Ваш полный запрос должен выглядеть так:

$QUERY = "UPDATE `internshala`.`student` SET 
    `High_School` = '$High_School', 
    `HS_Percentage` = '$HS_Percentage', 
    `Intermediate` = '$Intermediate', 
    `I_Percentage` = '$I_Percentage', 
    `Graduation` = '$Graduation', 
    `G_Score` = '$G_Score', 
    `G_Year` = '$G_Year', 
    `PG_Year` = '$PG_Year', 
    `PostGraduation` = '$PostGraduation', 
    `PG_Score` = '$PG_Score' 
WHERE `student`.`id` = '{$_SESSION['user_id']}';"; 

Также не используйте этот метод. Вы открыты для SQL-инъекций. Вы действительно должны использовать PDO или mysqli с подготовленными операторами. Взгляните на этот пост: How can I prevent SQL injection in PHP?

+0

Теперь у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '\' Dr. VSEC \ ', 'HS_Percentage' = \ '12 \',' Intermediate' = \ 'Dr. Vsec \ ', 'I_Percen' в сообщении линии 1s – Chaitanya

+0

Значения используются из переменных, и все же эта ошибка? – Chaitanya

+0

Взгляните на мой обновленный ответ. – Robbert

Смежные вопросы