У вас есть две ошибки, которые не связаны друг с другом:
Примечание: неопределенный индекс: стратегия в /casestudyform.php в строке 66
Как указывает @montooner, это уведомление от PHP, поскольку массив $_POST
не содержит значения для клавиши 'strategy'
. То есть форма была отправлена без флажка стратегии. Прежде чем ссылаться на него, вы должны проверить, существует ли ключ.
if (array_key_exists('strategy', $_POST)) ...
Ошибка: у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' study_id ',' имя_страницы ') VALUES (' 1 ',' N; ')' в строке 1
Это ошибка синтаксического анализа SQL. Вы поместили одинарные кавычки вокруг столбцов в своем выражении INSERT. В SQL одинарные кавычки ограничивают строковые константы, а не имена столбцов.
Если вам необходимо разделить имена столбцов (поскольку они содержат ключевые слова SQL, пробелы, специальные символы и т. Д.), Вы должны использовать обратные кавычки в MySQL или двойные кавычки в ANSI SQL.
Также будьте осторожны с SQL-инъекцией. Не думайте, что параметры HTTP-запроса содержат только целые или дружественные строки. Фильтр значений или экранирование их перед использованием в SQL. Функция addslashes()
не является хорошим решением для защиты от внедрения SQL.
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
$strategy_esc = mysql_real_escape_string($strategy);
$query ="INSERT INTO sslink(`study_id`, `strategyname`)
VALUES ($id, '$strategy_esc')";