2013-04-16 40 views
-3

在編碼方面,我幾乎是新手,所以對於缺乏知識感到抱歉。無法將用戶ID保存到數據庫中

我試圖以檢索從一個數據庫表(用戶ID數)forigne關鍵屬性是的話,我可以作出這樣的id將被用於細節保存到另一個數據庫表中的變量。

從,當他們在登錄,我可以查看所有與該用戶的ID鏈接的保存記錄。

我的問題是獲得用戶ID,並使其成爲一個變量保存到數據庫中,我只是似乎無法使其工作。如果我刪除了用戶標識,其餘代碼仍然有效,但我需要將其保存到表中。

這裏是我的代碼:

require_once("dbconnect.php"); 
try 
{ 
    $db = getConnection();  
    function get_id($db) 
    { 
    $username= $_SESSION['username']; 
    $result = $db->query(
     "SELECT userID FROM users where username='$username'"); 
    return $result; 
    } 
    $uID = get_id($db); 

    $userID= $uID->setFetchMode(PDO::FETCH_NUM); 
    $title = $Result->title; 
    $desp = $Result->description; 

    $sql = "INSERT INTO saved (userID, title, desp 
      VALUES ('$userID', '$title', '$desp')"; 
+2

當你看你的代碼,儘管是新手 - 你認爲變量'$ userID'發生了什麼(這似乎是你想要的)如果你使用'$ uID-> setFetchMode(PDO :: FETCH_NUM);'?您正在調用'setFetchMode',其中的文檔說它會返回true或false。你需要的是真還是假,或者是'$ userID'變量中的數字? :) –

+0

我需要一個號碼,他們是自動分配當用戶被添加到數據庫從1+我目前有5個帳戶,所以我有1,2,3,4或5,但我只得到1 – user1398487

+0

然後它似乎你在這裏使用了錯誤的功能。它可能是'fetchColumn',你可能需要? –

回答

1

的正確方法

function get_subid($db,$username) 
{ 
    $stm = $db->prepare("SELECT userID FROM users where username=?"); 
    $stm->execute(array($username)); 
    return $stm->fetchColumn(); 
} 
$userID = get_subid($db,$_SESSION['username']); 
+0

這工作,但我有'重複條目',當我嘗試保存另一個項目的問題。這是在sql數據庫中的外鍵問題或? – user1398487

+0

然後你可能會問另一個問題,關於這個重複的輸入錯誤,提供儘可能多的相關信息。 –

+0

會做謝謝:) – user1398487

-1

嘗試刪除周圍的userid變量引號中查詢:

$sql = "INSERT INTO saved (userID, title, desp) VALUES ($userID, '$title', '$desp')"; 
+0

嘿感謝確實保存,但它只是得到用戶ID 1,當我登錄到另一個帳戶說與用戶ID 2它仍然試圖保存1.任何建議? – user1398487

+0

cfr來自N.B.的評論在你的問題上...... +我的回答:-) –

+0

好的建議是閱讀@ N.B的評論。在你的問題下。 – agim

-1

嘗試以下操作:

require_once("dbconnect.php"); 
try { 
/** * ** connect using the getConnection function written in myfunctions.php ** */ $db = getConnection(); 

function get_subid($db) { 
$username= $_SESSION['username']; //variable accessed through the function 
$query = $db->query("SELECT userID FROM users where username='$username'"); 

$row = $query->row(); //Get's the first Row 
$result = $row->userID; //Get's the field userID of this first row 
return $result; 
} 
$uID = get_subid($db); 

      $title = $Result->title; 
      $desp = $Result->description; 

      // insert into database 
$data = array(
    'userID' => $uID, 
    'title' => $title, 
    'desp' => $desp 
); 
$db->insert('saved', $data); 

這應該是你想要的(看評論)

相關問題