Получение ошибки T_ENCAPSED_AND_WHITESPACE в PHP
Я создаю приложение в PHP, в котором я получаю сообщение об ошибке в этой строке #
$sql="INSERT INTO table ( `rollnum`,'sessionid', `class`, `subject`, `theory`, `practical`, `type_of`, `term`) VALUES ('$students['rollnum']', '$session','$class','$subject['id']','$_REQUEST[$subject['id'].'_'.$students['rollnum'].'_th']','$_REQUEST[$subject['id'].'_'.$students['rollnum'].'_pr']', '$examtype', '$examsubtype')";
Я не знаю, что не так с этой строкой. Я даже проверил на онлайн-платформе. Они сказали то же самое, что есть ошибка в строке № (выше). Любой, кто может помочь мне с этим Спасибо
4 ответа
Попробуйте использовать Dreamweaver или Net Bean, которые могут помочь вам найти ошибку в правильном месте
Скорее всего, вам нужно заключить переменные в двойные кавычки в скобках.
$string = "I want to use {$variable1} and {$variable['thisKey']}";
или следующее, которое работает немного быстрее;
$string = 'I want to use'.$variable1.'and '.$variable['thisKey'];
Так что это должно решить вашу непосредственную проблему, однако ваш запрос очень открыт для инъекции, которая может быть очень плохой, особенно если вы используете $_REQUEST
прямо в строке запроса. Я бы порекомендовал изучить подготовку ваших запросов перед их выполнением и убедиться, что все опасные вещи исключены.
Я ответил на другой вопрос, который включает в себя безопасный способ сделать запрос здесь с этим ответом
Вам необходимо заключить имена переменных в фигурные скобки:
$sql="INSERT INTO stdexamrecord ( `rollnum`,'sessionid', `class`, `subject`, `theory`, `practical`, `type_of`, `term`) VALUES (
'${students['rollnum']}',
'$session',
'$class',
'${subject['id']}',
' " . $_REQUEST[ $subject['id'] . '_' . $students['rollnum'] . '_th'] . "',
' " . $_REQUEST[ $subject['id'] . '_' . $students['rollnum'] . '_pr'] . "',
'$examtype',
'$examsubtype')";
Если в вашей среде PHP были следующие настройки: display_errors = On; error_reporting = E_ALL
, вы бы видели:
PHP Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
Как в этом примере:
$array['value'] = 'test';
echo "$array['value']";
Должно быть так:
echo "".$array['value']."";
echo "{$array['value']}";
В любом случае, вы можете использовать цифровые клавиши:
$array[0] = 'test';
echo "$array[0]";