Как я получаю последний вставленный идентификатор таблицы MySQL в PHP?

Некоторые приемы потока управления, finally вокруг return оператор:

int getCount() { 
  try { return 1; }
  finally { System.out.println("Bye!"); }
}

правила для определенное присвоение проверит, что последняя переменная всегда присваивается посредством простого анализа потока управления:

final int foo;
if(...)
  foo = 1;
else
  throw new Exception();
foo+1;

88
задан TRiG 30 January 2014 в 17:57
поделиться

7 ответов

Если вы используете PDO, используйте PDO :: lastInsertId .

Если вы используете Mysqli, используйте mysqli :: $ insert_id .

Если вы все еще используете Mysql:

Пожалуйста, не используйте функции mysql _ * в новом коде . Они больше не поддерживаются и официально признаны устаревшими . Видите красную рамку ? Вместо этого узнайте о подготовленных операторах и используйте PDO или MySQLi - , эта статья поможет вам решить, какие. Если вы выбираете PDO, вот хороший учебник .

Но если вам нужно, используйте mysql_insert_id .

126
ответ дан 24 November 2019 в 07:27
поделиться

Используйте mysql_insert_id () .

См. Аналогичный вопрос здесь

9
ответ дан 6 October 2019 в 16:09
поделиться

$ lastid = mysql_insert_id ();

-1
ответ дан 24 November 2019 в 07:27
поделиться

Можно использовать mysql_insert_id () , но есть одно конкретное замечание по поводу его использования, вы должны вызвать его после выполнения запроса INSERT, то есть в том же сеансе сценария. Если вы воспользуетесь им, он не будет работать правильно.

3
ответ дан 24 November 2019 в 07:27
поделиться

То, что вы написали, принесло бы вам наилучший id , если бы они были уникальными и автоматически увеличивались, что было бы хорошо, если бы вы не возражали с проблемами параллелизма.
Поскольку вы используете MySQL в качестве базы данных, существует специальная функция LAST_INSERT_ID () , которая работает только с текущим соединением, в котором была произведена вставка.
PHP предлагает специальную функцию для этого тоже под названием mysql_insert_id .

7
ответ дан 24 November 2019 в 07:27
поделиться

there is a function to know what was the last id inserted in the current connection

mysql_query('INSERT INTO FOO(a) VALUES(\'b\')');
$id = mysql_insert_id();

plus using max is a bad idea because it could lead to problems if your code is used at same time in two different sessions.

That function is called mysql_insert_id

52
ответ дан 24 November 2019 в 07:27
поделиться

It's ok. Also you can use LAST_INSERT_ID()

22
ответ дан 24 November 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: