【问题标题】:get the id of the last inserted row in mysql获取mysql中最后插入行的id
【发布时间】:2017-10-14 01:22:09
【问题描述】:

我到处寻找,不断得到不同的答案和错误的代码。我要做的就是在我在 MySQL 的数据库中添加一个字段之后,获取刚刚创建的字段的 user_id。我好像做不到?

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

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

【问题讨论】:

标签: php mysql


【解决方案1】:

执行查询后,可以使用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;

【讨论】:

    【解决方案2】:

    您可以返回插入的最后一行的主键

    $last_id = mysqli_insert_id($con);
    

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

    【讨论】:

      【解决方案3】:

      在插入查询后使用它

      $last_row = mysqli_insert_id($con);
      

      【讨论】:

        猜你喜欢
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多