自动递增一行(ID)

时间:2014-01-28 18:28:14

标签: php mysql sql forms input

我正在尝试AUTO_INCREMENT一行。

为表创建行时,INT是否优于TEXT?我将varchar用于其他行,但我认为使用带有varchar的AUTO_INCREMENT将完全没有意义。

该行称为“ID”,每次将数据插入其他行时,都假定为AUTO_INCREMENT。由于它假设为AUTO_INCREMENT,而不是允许用户输入数据的其他行,最好是修改下面的'serverid',还是禁用HTML表单ID字段的输入?

这是我的代码:

// Inserting input values into its respected row
$serverip=$_POST['post_serverid'];
$serverid=$_POST['post_serverip'];
$serverid=$_POST['post_serverport'];
$serverid=$_POST['post_servertitle'];
$serverid=$_POST['post_serverdesc'];
$serverid=$_POST['post_serverwebsite'];
$query = mysqli_query($con,"INSERT INTO servers (serverid, serverip, serverport,   
servertitle, serverdesc, serverwebsite) VALUES       
('$serverid','$serverip','$serverport','$servertitle','$serverdesc','$serverwebsite')");

2 个答案:

答案 0 :(得分:0)

你不应该在任何地方从你的html / php增加ID。您应该在数据库本身中设置它,作为带有PRIMARY索引和AUTO_INCREMENT的INT。然后,每个条目都将分配一个唯一的ID,您可以稍后查询。

答案 1 :(得分:0)

AUTO INCREMENT定义时,手动输入值没有意义。

有时你也有可能在不知不觉中输入表中已有的值。为了避免这种可能性,最好省略insert语句中的自动递增字段。

如果您仍然有兴趣使用insert语句中的字段,则可以安全地使用NULL0(零)。因此引擎将使用自动增量中的新值替换它并将其用于插入。

如果您要从网络表单输入值,则可以从表单中删除自动增量字段。

相关问题