1

我希望在将数据插入数据库后返回 id。

多人同时提交表单的可能性很大。

我不希望结果中显示错误的 ID,因为此 ID 也将记录在另一个数据库日志中,并用于以显示给用户的下一个表单上传文件。

如果几个人同时提交,mysqli_insert_id 是否有可能选择错误的 id?

查询该用户的最新日期条目并从那里提取 id 会更好吗?

或者我应该使用 mysqli_insert_id 然后根据该记录中的用户名检查该 id 以验证它是否正确?

还是我只是担心一些不成问题的事情?

感谢您的任何意见,我对此很陌生。

金:)

4

2 回答 2

5

last_insert_id()-type 函数与特定的数据库连接相关联。你不会得到其他一些并行连接产生的 id,你不会得到你在 3 次请求之前用这个脚本做的连接的 id。

始终是您使用特定数据库连接执行的最后一次插入的 id。

如果它返回本质上是一个随机数,那将是完全无用的函数。例如,考虑一系列父/子连接表。您插入父记录,尝试检索其 ID,并获取某些 OTHER 插入的 ID?现在你已经“丢失”了你的新记录,并且会将孩子附加到无效的父母身上。

没有。该功能完全按照您的预期工作,您不必担心得到错误的 ID。唯一需要注意的是它只检索LAST插入的 ID。如果您连续执行 2 次以上的插入,则除了最后一个插入之外,您已经丢失了所有的 ID。

于 2013-12-13T14:31:37.977 回答
-2

你可以像这样使用 mysql_insert_id

<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);

$sql = "INSERT INTO person VALUES ('B�rge','Refsnes','Sandnes','17')";
$result = mysql_query($sql,$con);
echo "ID of last inserted record is: " . mysql_insert_id();

mysql_close($con);
?> 
于 2013-12-13T14:31:39.050 回答