2016-07-24 126 views
0

在這段代碼中我必須在數據庫中插入一些值,然後我必須把最後一個id插入到數據庫中並將它發送到另一個頁面以顯示該id行的值。這裏是我的插入數據在DB代碼:在另一個PHP頁面我必須採取$last_id,並用它發送最後一個id插入變量到另一個頁面在php

try { 
    $con = new PDO("mysql:host=localhost;dbname=resume", "root", ""); 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql_basic = "INSERT INTO user_basic_info (first_name,last_name,address,profile_pic,resume_file) 
VALUES ('$FirstName','$LastName','$Address','$pic_destination','$resume_destination')"; 

    $con->exec($sql_basic); 
    $last_id = $con->$lastInsertId(); 
} catch (PDOException $e) { 
    echo $sql_basic . "<br>" . $e->getMessage() . "<br>"; 
} 

$con = null; 

header('Location: DB-Read.php?id=' . $last_id); 

。這裏是我的代碼:

try { 
    $user_id = $id; 
    $conn = new PDO("mysql:host=localhost;dbname=resume", "root", ""); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT first_name FROM user_basic_info where user_id = ".$user_id); 
    $stmt->execute(); 
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 

    echo "this is username: " . $result; 

} catch (PDOException $e) { 
    echo "Error: " . $e->getMessage(); 
} 

$conn = null; 

header('Location: show-edit.php?id=' . $last_id); 

首先$lastInsertId()不工作! 之後,我的方法是真的從第一頁拿$last_id

+0

您可以用'$ _SESSION' – Hamid

+0

檢查括號中的catch語句。這可能會導致您沒有看到的錯誤消息。 – jeff

+0

你可以在SESSION ['id']中設置最後插入的ID,並可以在下一頁檢索它,並在使用後可以取消設置。 SESSION是傳遞數據庫ID更安全的方法。 –

回答

1

lastInsertIdPDO對象的一種方法。您需要致電$conn->lastInsertId();

您給出的語法$conn->$lastInsertId();是有效的,但是,它不會,你期望的。它認爲$lastInsertId是一個包含要調用的方法名稱的變量。下面的例子將工作以及:

$method_name = 'lastInsertId'; 
$conn->$method_name(); 

要知道,你的解決方案使任何人都可以獲取你的表格的任意一行。考慮使用會話。

-1

試試這個: 使用會話:

try { 
    $con = new PDO("mysql:host=localhost;dbname=resume", "root", ""); 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql_basic = "INSERT INTO user_basic_info (first_name,last_name,address,profile_pic,resume_file) 
VALUES  ('$FirstName','$LastName','$Address','$pic_destination','$resume_destination')"; 

    $con->exec($sql_basic); 
    $_SESSION['id'] = $con->lastInsertId(); //it's a method 
} catch (PDOException $e) { 
    echo $sql_basic . "<br>" . $e->getMessage() . "<br>"; 
$con = null; 

header('Location: DB-Read.php?id=' . $last_id); 

現在使用此代碼

try { 
    $user_id = $_SESSION['id']; 
    $conn = new PDO("mysql:host=localhost;dbname=resume", "root", ""); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT first_name FROM user_basic_info where user_id = ".$user_id); 
    $stmt->execute(); 
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 

    echo "this is username: " . $result; 

} catch (PDOException $e) { 
    echo "Error: " . $e->getMessage(); 
} 

$conn = null; 

header('Location: show-edit.php?id=' . $last_id); 
相關問題