PDO lastInsertId () возвращает 0

Я искал, по другим вопросам, задавая то же самое, и не могу понять, почему мой запрос не будет действовать так, как должен.

Мой запрос:

$stmt = db()->prepare("INSERT INTO conversations (user1, user2) VALUES (?, ?)"); $stmt->execute(array($_SESSION['user']['userId'], $user)); echo db()->lastInsertId(); 

Когда я делаю это lastInsertId (); возвращает 0.

Моя функция db ():

 function db() { $dsn = 'mysql:host=localhost;dbname=message_board'; $username = 'root'; $password = 'root'; try { $db = new PDO($dsn, $username, $password); } catch(PDOException $e) { // exceptions handles here } return $db; }