Подтвердить что ты не робот

PHP/MySQL Получить автоинкрементное значение после вставки

В моей таблице mysql у меня есть идентификатор-столбец, который настроен на автоинкремент.

тогда я делаю такие запросы:

INSERT INTO table (id, foo) VALUES ('', 'bar')

как я могу безопасно узнать, какой идентификатор был сгенерирован с этой вставкой?

Если я просто запрошу последний идентификатор, это может быть небезопасно, так как между ними могла произойти другая вставка, верно?

4b9b3361

Ответ 4

Если вы используете mysql_query ( "..." ), то mysql_insert_id() - это функция, которая вам нужна. Если вы используете что-то еще для выполнения запросов, тогда необходимо проверить соответствующую документацию

Ответ 5

Если вы используете PHP для получения значения auto_incremented, которое возвращается после инструкции INSERT, попробуйте использовать функцию MySQLi insert_id. Более старая версия mysql_insert_id() устарела в PHP.

Пример ниже:

 <?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Ответ 6

mysql_insert_id();

Также вы можете просто запустить этот запрос:

INSERT INTO table (foo) VALUES ('bar')

Ответ 7

Так как это PHP, mysql_insert_id должен сделать трюк

Ответ 9

также в PDO после команды execute в качестве примера ниже:

$lastId = $dbh->lastInsertId();

нажмите REF