我有一个包含2个字段的表(name
,confirm
)。
confirm
的类型为tinyint
,因为我想输入0或1
现在我想在confirm
中加1;这句话是否正确?
if($row['confirm']==0)
{
$query = "INSERT INTO opt (confirmed) values('0')";
echo 'The user selected options has confirmed';
}
答案 0 :(得分:5)
如果您还希望关联的“名称”字段为NULL,那么您所写的语句才是正确的。
如果你真的想要填充这两个字段,你应该这样做:
INSERT INTO opt (name, confirmed) VALUES (?, ?)
然后使用mysqli
或PDO
系列函数将?
参数绑定到用户提供的值。这对于保护您的数据库免受SQL注入攻击是必要的。
我还会考虑添加另外两个字段:
id
字段(MySQL的auto_increment
对此有用),以便您可以删除和/或修改特定记录timestamp
字段,以便您在添加此数据时获得记录(双关语)答案 1 :(得分:4)
听起来你真的想要做更新:
UPDATE opt SET confirmed = 1 WHERE name ='$ row [name]'
右?
答案 2 :(得分:2)
如果'确认'是数字列,则不应在1周围加上引号。
INSERT INTO OPT (confirmed) VALUES (1)
答案 3 :(得分:0)
之前的海报所说的所有内容+:如果“确认”字段只有两个可能的值,那么请将其设为ENUM。