[英]How to return 1 in mysql_insert_id() in php?
此处的逻辑错误是mysql_insert_id()
始终从0开始,而我希望它从1开始递增,依此类推。 我不知道为什么会给我一个错误:键“ PRIMARY”的条目“ 0”重复。 我不想复制我只想添加的密钥。 例如。 1 2 3 4。
这是我的代码:
$insertID=mysql_insert_id(); //I want this to start at 1
if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['address']))
{
$sql="INSERT INTO contact(idnum, lastname, firstname, address) values ('$insertID','$_POST[lastname]','$_POST[firstname]','$_POST[address]')";
if(!mysql_query($sql, $con))
{
die("Error: " .mysql_error());
}
echo "Saved...";
}
您似乎误解了mysql_insert_id()
实际作用 。
它不会生成一个ID供您在下一个查询中使用。 它告诉您MySQL在上一次查询中生成的ID。 所以...
如果您使用的是手动ID,则应用程序有责任生成唯一的ID。 如果您使用的是数据库生成的ID,请从INSERT语句中删除该ID,并在生成数据库后从数据库中获取该ID。
另外,请注意,您的代码对SQL注入漏洞很开放 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.