从新行获取数据

时间:2015-07-18 20:01:06

标签: php mysql sql web pdo

我编写代码在MySql表中插入新记录。有没有什么办法可以在不进行新查询的情况下获取插入的行id

try {

    $NEWData = $DBH->prepare("
    INSERT INTO boge 
        (name, grade, school, made, type) 
        VALUES (:name, :grade, :school, NOW(), '2')"
    );

    $NEWData->bindParam(':name', $navn); // Erik
    $NEWData->bindParam(':grade', $skid); // 12
    $NEWData->bindParam(':school', $klasseId); // 1 - school have an id

    // wants to get the new rows id
    $NEWData->execute();


} catch(PDOException $e) {

    echo $e->getMessage();
    exit();

}

3 个答案:

答案 0 :(得分:0)

您可以使用pdo函数lastInsertId http://php.net/manual/en/pdo.lastinsertid.php

同样在某些数据库引擎中,您可以在INSERT INTO之后添加“返回id”,但PDO方式将始终有效。

答案 1 :(得分:0)

试试这个:

$last_insert_id = $DBH->lastInsertId();
echo "<p>$last_insert_id</p>";

答案 2 :(得分:0)

使用lastInsertId可能会对高流量网站产生轻微问题。 这是一个更有效的解决方案:

// wants to get the new rows id
$insert = $NEWData->execute();
$lastId = $insert->insertId();

这使您能够以最高精度获得正确的插入ID。