2012-08-21 40 views
0

我有一個名爲player的表,在將數據插入到那裏後,成功工作,我有以下一段代碼來捕獲自動遞增的主鍵。使用lastInsertId()值填充另一個表中的列

$one = $pdo->lastInsertId(); 

然後我想要做的是取出存儲在此變量中的值,並將其作爲值插入到另一個表中。我嘗試了幾種方法,但無濟於事。請看下面:

未遂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(); 
} 

未遂兩個

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(); 
} 

實際上並沒有引發任何錯誤,但代碼時,我看在數據庫中,該值爲沒有得到通過。

任何人都可以解釋發生了什麼問題嗎?

感謝您的時間和幫助。

+0

爲什麼'$ one'在'$ _POST'? – jammypeach 2012-08-21 10:46:52

+1

Ermmmmmmmm我不知道爲什麼我認爲這會工作?因此,當使用method ='post'發送表單時,$ _POST數組會自動創建並用於收集值。顯然這個價值並不來自提交的表單。我確實嘗試了許多不同的方式來做到這一點,認爲我只是變得絕望,並沒有花時間正確地閱讀代碼。感謝讓我花時間評估爲什麼這不起作用。 – Johnny 2012-08-21 10:50:16

+0

沒問題 - 我會像@Mihai lorga一樣回答,試試看他的答案,看看是否有幫助。 – jammypeach 2012-08-21 10:55:31

回答

1

只使用$one

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

感謝Mihai和jammypeach,這很好地工作,我現在明白了爲什麼。 – Johnny 2012-08-21 11:22:00

相關問題