如何从我刚刚执行的MYSQL插入中获取主要ID?

时间:2012-08-14 22:59:27

标签: php mysql

  

可能重复:
  Select last insert id
  Retrieving the last insert id from MySql using PHP

我正在尝试从我正在执行的插入中获取unique_id。在我的MySQL数据库中,column_1是一个唯一的ID,每次插入都会自动递增。

我认为答案与$ mysqli-> insert_id有关,但我不确定在哪里放。这是我用来插入的代码:

// Add the user to the database:
$q = "INSERT INTO database_name (column_2, column_3, column_4) VALUES ('$val1', '$val2', '$val3')";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

if (mysqli_affected_rows($dbc) == 1) { // If it ran OK.

    $_SESSION['column_2'] = $val1;
    $_SESSION['column_3'] = $val2;
    $_SESSION['column_4'] = $val3;

    //Do whatever

    //Go-to page

    $url = BASE_URL . 'url-address-of-thank-you-page'; .
    ob_end_clean(); // Delete the buffer.
    header("Location: $url");

    exit(); // Stop the page.

} else { // If it did not run OK.
    echo '<div class="error"><p>You could not be registered due to a system error. We apologize for any inconvenience.</p></div>';
}

以下是工作代码:

...
    $_SESSION['column_1'] = $dbc->insert_id;
    $_SESSION['column_2'] = $val1;
    $_SESSION['column_3'] = $val2;
    $_SESSION['column_4'] = $val3;

...

2 个答案:

答案 0 :(得分:3)

你几乎回答了自己的问题,mysql_insert_id()就是你所追求的功能:

// Add the user to the database:
$q = "INSERT INTO database_name (column_2, column_3, column_4) VALUES ('$val1', '$val2', '$val3')";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

if (mysqli_affected_rows($dbc) == 1) { // If it ran OK.

    $_SESSION['column_1'] = mysqli_insert_id($dbc);
    $_SESSION['column_2'] = $val1;
    $_SESSION['column_3'] = $val2;
    $_SESSION['column_4'] = $val3;

答案 1 :(得分:0)

使用LAST_INSERT_ID()功能。