如何可靠地插入表中然后检索多用户系统中的自动编号

时间:2013-02-06 08:50:58

标签: mysql table-locking

假设我运行这样的insert语句:

        $sql = "insert into tbl_features (feature_class, feature_name, description) values (?, ?, ?)";
        $q = $pdo_conn->prepare($sql);
        $q->execute(array($_GET['new_feature_class'], $_GET['new_feature_name'], $_GET['new_description']));

然后我想要检索刚刚插入的行的id以在另一个表中使用它。我可以使用select max()但是我怎么能确定没有其他人做过插入,从而为两个用户提供相同的max来尝试填充其他表?我很高兴锁定整个表,代码很少运行,不会产生明显的差异。也许我是迂腐但我想晚上睡觉,知道我的代码是防弹的。

1 个答案:

答案 0 :(得分:1)

您可以使用lastInsertId来检索它:http://php.net/manual/en/pdo.lastinsertid.php