可能重复:
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;
...
答案 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()功能。