What is the difference between mysql_insert_id and LAST_INSERT_ID functions in MySQL when used in PHP for obtaining auto-generated IDs?

When working with MySQL in PHP to obtain auto-generated IDs after inserting a record, it's important to understand the difference between mysql_insert_id and LAST_INSERT_ID functions. mysql_insert_id is used to retrieve the ID generated by the last INSERT query specific to the connection, while LAST_INSERT_ID is used to retrieve the ID generated by the last INSERT query for the current session, which may be different in cases where triggers or stored procedures are involved.

// Using mysql_insert_id
$query = "INSERT INTO table_name (column_name) VALUES ('value')";
$result = mysqli_query($connection, $query);
$last_insert_id = mysqli_insert_id($connection);

// Using LAST_INSERT_ID
$query = "INSERT INTO table_name (column_name) VALUES ('value')";
$result = mysqli_query($connection, $query);
$last_insert_id = mysqli_query($connection, "SELECT LAST_INSERT_ID()");