Делаем логический вывод: SQL запросы выполнялись не в одной сессии(соединении) с сервером.
Может, я не очень понимаю, что же тогда такое сессия?
Я сейчас сделала следующее:
1. insert into a values(null,87) -> результат (1,87)
2. insert into a values(null,last_insert_ID()) -> результат (2,1)
А потом:
1. insert into a values(null,87) -> результат (3,87)
2. select last_insert_id() -> результат 0.
И что же это получается? В первом случае оба запроса выполнились в одной сессии, а во втором в разных?