テーブルの行が追加されると、主キーを自動でインクリメントさせるようにしています。
行を追加したその場で、その行の主キーを取得したと思っています。

今回、複数のユーザーを管理するシステムだと仮定して、
以下のようなテーブルを作成しました。
user
以下は、主キーを特定するプログラムを自分なりにつくってみたものです。

<?php

// POST受け取り
$name = $_POST['name'];
$birthday = $_POST['birthday'];

// データベースサーバーに接続
$dbc = connectDb();
$dbc->query('SET NAMES utf8');

// データを追加
$stmt = $dbc->prepare("INSERT INTO user(name,birthday) VALUES(:name,:birthday);");
$stmt->bindParam(':name',$name,PDO::PARAM_STR);
$stmt->bindParam(':birthday',$birthday,PDO::PARAM_STR);
$stmt->execute();

// name,birthdayを使って、今回追加されたデータのcodeを特定
$stmt2 = $dbc->prepare("SELECT * FROM user WHERE name=:name AND birthday=:birthday;");
$stmt2->bindParam(':name',$name,PDO::PARAM_STR);
$stmt2->bindParam(':birthday',$birthday,PDO::PARAM_STR);
$stmt2->execute();
while ($row = $stmt2->fetch(PDO::FETCH_ASSOC)) {
  echo $row['code'];
}

// データベース切断
$dbc=null;

function connectDb() {
    try {
        $dsn = 'mysql:host=xxx;dbname=xxx';
        $user = 'xxx';
        $password = 'xxx';
        $db = new PDO($dsn,$user,$password);
        return $db;
    } catch (PDOException $e) {
        echo $e->getMessage();
        exit;
    }
}

このプログラムを用いれば、たしかに追加した行の主キーを取得することができるのですが、
データベースで名前、誕生日が重複していれば、複数の主キーを取得してしまうという欠点があります。 もっと簡単に、主キーを特定する方法は無いのでしょうか?
データベース詳しい方ご教示ください。