使用lastInsertId()值填充另一个表中的列

时间:2012-08-21 10:43:16

标签: php sql

我有一个名为player的表,在将数据插入到那里后,成功运行,我有以下代码来捕获自动递增主键的值。

$one = $pdo->lastInsertId();

我当时希望做的是获取存储在此变量中的值,并将其作为值插入另一个表中。我尝试过几种方法但无济于事。请参阅以下内容:

ATTEMPT ONE

try
{
    $sql = "INSERT INTO links SET
            link = :link,
            playerid = '$one'";
    $s = $pdo->prepare($sql);
    $s->bindValue(':link', $_POST['link']);
    $s->bindValue(':playerid', $_POST[':playerid']);
    $s->execute();
}
catch (PDOException $e)
{
    $error = 'Error adding link for player.' . $e->getMessage();
    include 'error.html.php';
    exit();
}

ATTEMPT TWO

try
{
    $sql = 'INSERT INTO links SET
            link = :link,
            playerid = :playerid';
    $s = $pdo->prepare($sql);
    $s->bindValue(':link', $_POST['link']);
    $s->bindValue(':playerid', $_POST['$one']);
    $s->execute();
}
catch (PDOException $e)
{
    $error = 'Error adding link for player.' . $e->getMessage();
    include 'error.html.php';
    exit();
}

代码实际上并没有抛出任何错误,但是当我查看数据库时,该值未被传入。

有人可以解释出现了什么问题吗?

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

只需使用$one

$sql = 'INSERT INTO links SET
        link = :link,
        playerid = :playerid';
$s = $pdo->prepare($sql);
$s->bindValue(':link', $_POST['link']);
$s->bindValue(':playerid', $one);