У меня есть таблица с 2 полями (name, confirm).
confirm имеет тип tinyint, потому что я хочу указать 0 или 1
Теперь я хочу поместить 1 в confirm; это утверждение правильно?
if ($row['confirm']==0)
{
$query = "INSERT INTO opt (confirmed) values('0')";
echo 'The user selected options has confirmed';
}






Если «подтверждено» является числовым столбцом, не следует заключать 1 в кавычки.
INSERT INTO OPT (confirmed) VALUES (1)
MySQL с радостью принимает числовые значения в кавычках.
MySQL с радостью примет множество вещей, которых следует избегать или которые считаются плохой практикой ...
Написанный вами оператор является правильным только в том случае, если вы также хотите, чтобы связанное поле 'name' было NULL.
Если вы действительно хотите, чтобы оба поля были заполнены, вам следует сделать:
INSERT INTO opt (name, confirmed) VALUES (?, ?)
а затем используйте семейство функций mysqli или PDO для привязки параметров ? к значениям, заданным пользователем. Это необходимо для защиты вашей базы данных от атак с использованием SQL-инъекций.
Я бы также подумал о добавлении еще пары полей:
id (для этого подходит MySQL auto_increment), чтобы вы могли удалять и / или изменять определенные записи.timestamp, чтобы у вас была запись (не каламбур) о том, когда эти данные были добавлены.Все предыдущие плакаты говорили +: Если у вас есть только два возможных значения для поля «подтверждено», сделайте его ENUM.
Похоже, вы действительно хотите обновить:
UPDATE opt SET подтвержден = 1 WHERE name = '$ row [name]'
Верно?
Я немного запутался. Это почти звучит так, как будто у вас уже есть имя в таблице, и вы просто хотите ОБНОВИТЬ подтвержденное поле для конкретного имени. Нет?