获取mysql中最后一个插入行的id

时间:2017-05-15 09:53:31

标签: php mysql

我到处寻找并不断得到不同的答案和错误的代码。我想要做的就是在MySQL中为我的数据库添加一个字段后,获取刚刚创建的字段的user_id。我似乎无法做到这一点?

我正在使用它来输入字段并感谢您的帮助。它的user_id值为auto_increment,这是我需要得到的。

mysqli_query($con,"INSERT INTO users_accounts (business, email_uniq)
VALUES ('$business', '$email_uniq')");

3 个答案:

答案 0 :(得分:1)

在插入查询后使用此

$last_row = mysqli_insert_id($con);

答案 1 :(得分:0)

您可以返回用

插入的最后一行的主键
$last_id = mysqli_insert_id($con);

您可以在此处找到更多信息:http://php.net/manual/en/mysqli.insert-id.php

答案 2 :(得分:0)

执行查询后,您可以使用mysqli :: $ insert_id值或mysqli_insert_id函数来检索上次生成的ID,如下所示:

mysqli_query($con,"INSERT INTO users_accounts (business, email_uniq) VALUES ('$business', '$email_uniq')");
$insert_id = mysqli_insert_id($con);

或使用对象函数:

$con->query("INSERT INTO users_accounts (business, email_uniq) VALUES ('$business', '$email_uniq')");
$insert_id = $con->insert_id;

编辑:没有关系,但绝对重要! 如果这些参数$ business或$ email_uniq中的任何一个的值都是用户提供的,则强烈建议确保它们已正确过滤。最简单的方法是使用准备好的安全语句(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。以下是使用预准备语句的代码:

$stmt = $con->prepare("INSERT INTO users_accounts (business, email_uniq) VALUES (?,?)");
$stmt->bind_param("ss", $business, $email_uniq);
$stmt->execute();
$insert_id = $con->insert_id;