-3

在编码方面我几乎是一个新手,很抱歉这里缺乏知识。

我正在尝试从一个数据库表(用户的 ID 号)中检索一个外键属性,因此我可以id将其设为一个变量,用于将详细信息保存到另一个数据库表中。

从那里我可以查看所有与该用户登录时的 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')";
4

3 回答 3

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']); 
于 2013-04-16T13:01:21.993 回答
-1

尝试在查询中删除 userid 变量周围的引号:

$sql = "INSERT INTO saved (userID, title, desp) VALUES ($userID, '$title', '$desp')";
于 2013-04-16T12:49:03.120 回答
-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);

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

于 2013-04-16T13:04:22.883 回答