У меня есть таблица с двумя полями ( 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'; }
Заявление, которое вы написали, является правильным, если вы также хотите, чтобы связанное поле «name» было NULL.
Если вы действительно хотите, чтобы оба поля были заполнены, вы должны:
INSERT INTO opt (name, confirmed) VALUES (?, ?)
а затем использовать семейство функций mysqli
или PDO
для привязки ?
параметров к заданным пользователем значениям. Это необходимо для защиты вашей базы данных от атак SQL-инъекций.
Я также хотел бы добавить еще пару полей:
id
(для этого используется auto_increment
MySQL), чтобы вы могли удалять и / или изменять определенные записи timestamp
чтобы у вас была запись (каламбур не предназначен), когда эти данные были добавлены Кажется, вы хотите сделать обновление:
UPDATE opt SET подтверждено = 1 WHERE name = '$ row [name]'
Правильно?
Когда «подтверждено» является числовым столбцом, вы не должны ставить кавычки вокруг 1.
INSERT INTO OPT (confirmed) VALUES (1)
Все предыдущие плакаты сказали +: Если у вас есть только два возможных значения для поля «подтверждено», сделайте его ENUM.