插入mysql问题

时间:2009-01-20 11:53:36

标签: php mysql

我有一个包含2个字段的表(nameconfirm)。 confirm的类型为tinyint,因为我想输入0或1

现在我想在confirm中加1;这句话是否正确?

if($row['confirm']==0)
{
    $query = "INSERT INTO opt (confirmed) values('0')";
    echo 'The user selected options has confirmed';
}

4 个答案:

答案 0 :(得分:5)

如果您还希望关联的“名称”字段为NULL,那么您所写的语句才是正确的。

如果你真的想要填充这两个字段,你应该这样做:

INSERT INTO opt (name, confirmed) VALUES (?, ?)

然后使用mysqliPDO系列函数将?参数绑定到用户提供的值。这对于保护您的数据库免受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。