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

标签 php mysql

Possible Duplicate:
Select last insert id
Retrieving the last insert id from MySql using PHP
我正在尝试从正在执行的插入中获取唯一的id。在MySQL数据库中,列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;

...

最佳答案

你几乎回答了自己的问题,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;

关于php - 如何从刚刚执行的MYSQL插入中获取主ID? ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962027/

相关文章:

php - Yii 注册 CSS 文件,作为最后一个(在 assets 之后)

mysql - 这是将 MySQL 表从 latin1 转换为 utf-8 的安全方法吗?

php - MySQL BETWEEN 查询从数据库中的文本字段获取数据

php - Mysql 中的 HAVING 子句中使用的半正矢距离计算的别名没有任何效果

mysql - 错误 2003(HY000) 无法连接到 'localhost' (10061) 上的 MySQL 服务器

mysql - "MySqlException: Table ' mysql.proc ' doesn' t 存在”在.NET Core中执行MySQL存储过程时

PHP 获取输入、单选、选择数据并插入到 MySQL 表中

php - 在 PHP 中将 ' 转换为撇号

php - 从 MySQL 数据库查找下一个/上一个电视节目

php - 有没有办法执行这个 CURL 请求而不打印响应?