刚才操作了以下几步:
1 在mysql的cmd状态中插入一条数据,查看当前id值。
2 在php中敢插入几条数据。
3 返回mysql的cmd状态执行:last_insert_id()。所获得的是第一步中在mysql中直接插入的最大id值,这好像是线程问题吧,现在问题出来了:像$q = "insert into users(username,first_name,last_name,email,pass) VALUES ('$un','$fn','$ln','$e',SHA1('$p'));select last_insert_id() as lastid";像这种两条语句并到一起在asp中是可以,php好像不行,如果分开写用两步执行,在这时如果有并发产生,这里的lastid可能就会出错。请问有什么好的解决办法?

解决方案 »

  1.   

    需要分开写。
    PHP的 mysql_insert_id ( [resource $link_identifier] ) 函数可以返回你需要的ID。
    可选参数是php连接mysql的句柄。 每个连接都有不同的句柄。-----------------------------
    指点迷津网 http://www.zhidianmijin.com
      

  2.   

    mysql 函数 last_insert_id() 返回当前连接的最后一次插入的自增字段值
    PHP 函数 mysql_insert_id() 返回同样的值结果一样,作用环境也一样
    不要小瞧了数据库系统的开发者们。你想到了,他们也想到了。你没想到的,他们同样也想到了。
      

  3.   

    mysqli_multi_query($link, $sql);
    他可以执行多条sql
      

  4.   


    不是小瞧的问题,开发者当然比我们强太多了,但在具体应用他们的产品上,这些细节要理清。这也是做为程序员严谨精神要求的吧。特别是对我这样初学者,细节关注到了,以后就不会犯这样初级错误。感谢wangkilin,稍后测试一下,谢谢!