LAST_INSERT_ID ще работи само за автоматично генериран първичен ключ, който е създаден в полето auto_increment. Във вашия случай изглежда, че предоставяте идентификатора изрично, така че последният идентификационен номер за вмъкване не е зададен.
Това е изрично:
mysql> insert into test (id, name) VALUES (5, 'test 2');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 0 |
+------------------+
1 row in set (0.00 sec)
Това е имплицитно:
mysql> insert into test (name) values ('test');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 3 |
+------------------+
1 row in set (0.00 sec)