Описание наблюдаемого поведения как «не работающего» или «ничего не происходит» дает очень мало полезной информации при определении что является реальной проблемой.
(Как вы определяете, что «ничего не происходит» или «не работает»?)
Я предлагаю добавить некоторые выходные данные отладки (например, echo или var_dump) в определенных точках кода, чтобы определить, какой путь в коде берется. (Установлено $_POST['update']
? Условие if
оценивается как ИСТИНА?)
https://ericlippert.com/2014/03/05/how-to-debug-small-programs/
Замечу, что очень странно, что мы изменили бы name
из student
на основе age
. Например, это утверждение будет пытаться присвоить одно и то же имя каждому ученику определенного возраста ...
UPDATE student1
SET name = 'Ted'
WHERE age = '19'
Было бы очень странно сделать это. SQL действителен. Странно то, что , какие строки изменяются (все строки, имеющие возраст = 19), и применяемое изменение (изменение имени всех строк на одно и то же значение.)
Не имеет значения, если ученика зовут Джек, или Джилл, или что-то еще. Каждая строка в таблице со значением возраста 19 будет изменена.
Обычно мы не храним «возраст» в виде столбца, а вместо этого сохраняем дату рождения (доб). DOB не изменится. Но возраст изменится; age - это разница между DOB и текущей (или некоторой указанной датой «по состоянию») датой. Возраст в годах? Возраст в месяцах или днях?
Если мы настаиваем на сохранении возраста, то гораздо вероятнее, что столбец age
изменит столбец имени.
Чтобы определить , какая строка должна быть обновлена ... name
уникальна? Могут ли быть две или более строки с одинаковыми name
?
Возможно, нам нужен какой-то уникальный идентификатор учащегося, и мы используем его в обновлении UPDATE.
UPDATE student1 s
SET s.some_col = 'new_value'
WHERE s.id = 'unique_identifier'
Do not использовать устаревший интерфейс mysql_ для новой разработки. Используйте PDO. (Или используйте mysqli _).
Также используйте подготовленные операторы с заполнителями связывания для смягчения уязвимостей SQL-инъекций. Если по какой-то непостижимой причине мы не можем этого сделать, то как минимум любые потенциально небезопасные значения, включенные в текст SQL , должны быть должным образом экранированы.
Маленькие столики Бобби https://xkcd.com/327/
OWASP Project SQL Injection https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet