Chcę uzyskać identyfikator rekordu dla ostatniego wstawionego wiersza w tabeli bazy danych. Próbuję użyć db_last_insert_id()
, ale rzuca wyjątek.
Wywołanie niezdefiniowanej funkcji
db_last_insert_id()
Jak uzyskać ostatni wstawiony identyfikator rekordu?
Odpowiedzi:
W Drupal 6 używałbyś kodu podobnego do następującego.
Odpowiednik kodu Drupal 7 jest następujący.
źródło
function db_last_insert_id($table, $field)
Jeśli nie kontrolujesz konkretnego zapytania wstawiania, zawsze możesz użyć zwykłego starego zapytania SQL:
źródło
MAX(uid)
musi zwrócić. Jeśli nie, twój serwer MySQL jest bardzo zepsuty$ id zawiera ostatni wstawiony identyfikator tabeli. po prostu zrób echo $ id.
źródło
Jeśli z jakiegoś powodu musisz uzyskać wartość pola przed wstawieniem, jest to obejście tego problemu.
źródło
Prymitywna sztuczka, ale działa:
lub
źródło