繁体   English   中英

如何在php的mysql_insert_id()中返回1?

[英]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。 所以...

  1. 如果您的表没有使用自动生成的ID,则没有要返回的数据库的生成ID。
  2. 在插入任何内容之前,您都要求生成的ID。

如果您使用的是手动ID,则应用程序有责任生成唯一的ID。 如果您使用的是数据库生成的ID,请从INSERT语句中删除该ID,并在生成数据库从数据库中获取该ID。


另外,请注意,您的代码SQL注入漏洞很开放

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM