PDO - 获取当前插入的ID

Ton*_*ght 6 php pdo

$query = "INSERT INTO news VALUES (NULL, :param1 , :param2  )";
$stmt = $pdo->prepare($query);

$params = array(
    "param1" => $p['title'],
    "param2" => $p['body'],
);

$data = $stmt->execute($params);

// here i would like get current inserted ID. Is possible?

$id = $data->id ???? ;
Run Code Online (Sandbox Code Playgroud)

//这里我想获得当前插入的ID.有可能吗?

$ id = $ data-> id ???? ;

我该怎么做?

小智 17

$query = "INSERT INTO news VALUES (NULL, :param1 , :param2  )";
$stmt = $pdo->prepare($query);

$params = array(
    "param1" => $p['title'],
    "param2" => $p['body'],
);

$data = $stmt->execute($params);
Run Code Online (Sandbox Code Playgroud)

所以你可以这样做以获得最后插入的Id

$last_id = $pdo->lastInsertId();
Run Code Online (Sandbox Code Playgroud)

  • 最后插入 ID 似乎暗示着可能的竞争条件。如果同时发生两个 PDO 语句,lastInsertId 是否有可能返回另一个插入语句的 id? (2认同)