PDO lastInsertId()返回0

sko*_*ind 0 php pdo

我一直在寻找,在其他问题上也一样,并且无法弄清楚为什么我的查询不会像它应该那样行事.

我的查询:

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

当我这样做时,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;
}
Run Code Online (Sandbox Code Playgroud)

You*_*nse 5

function db()
{
    static $db;

    $dsn = 'mysql:host=localhost;dbname=message_board';
    $username = 'root';
    $password = 'root';

    if (!$db) {
       $db = new PDO($dsn, $username, $password);
    }
    return $db;
}
Run Code Online (Sandbox Code Playgroud)