在编码方面,我几乎是一个新手,很抱歉这里缺乏知识。
我正在尝试从一个数据库表(用户的ID号)中检索一个forigne键属性,这样我就可以使 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')";
答案 0 :(得分: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']);
答案 1 :(得分:-1)
尝试删除查询中的userid变量周围的引号:
$sql = "INSERT INTO saved (userID, title, desp) VALUES ($userID, '$title', '$desp')";
答案 2 :(得分:-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);
这应该是你想要的(见评论)