2013-04-16 44 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); 

这应该是你想要的(看评论)