如何在数据库中插入$ _SESSION变量?

时间:2018-06-30 13:00:07

标签: php database mysqli

我遇到了以下问题:我想在数据库中插入$ _SESSION ['userID'],但无法正常工作。它不会使用以下代码将任何内容插入数据库。在这种情况下,安全性并不重要!

if(isset($_POST["joinKurs"])){
    echo("<script>console.log('userID: ".$_userID." and KursID: 1 saved in database');</script>");
    $_sql = "INSERT INTO userkurse (userID, kursID) VALUES('{$_SESSION['userID']}','1')";
    $_res = mysqli_query($link, $_sql);
}

当我用数字替换{$ _SESSION ['userID']}时,它会起作用。

    if(isset($_POST["joinKurs"])){
    echo("<script>console.log('userID: ".$_userID." and KursID: 1 saved in database');</script>");
    $_sql = "INSERT INTO userkurse (userID, kursID) VALUES('5','1')";
    $_res = mysqli_query($link, $_sql);
}

回显$ _sql表示SQL语句错误。

INSERT INTO userkurse (userID, kursID) VALUES('3');','1')

2 个答案:

答案 0 :(得分:0)

  $_sql = "INSERT INTO userkurse (userID, kursID) VALUES('".$_SESSION['userID']."','1')";

使用此选项,因为'使用此选项将不会在变量内部打印值,并且要创建的sql字符串无效。

"INSERT INTO userkurse (userID, kursID) VALUES('{$_SESSION['userID']}','1')";

您需要的是

"INSERT INTO userkurse (userID, kursID) VALUES('12345646edj','1')";

也,使用

echo $_sql

验证创建的sql语句。

答案 1 :(得分:0)

您可以尝试将会话ID存储到变量中,然后查看其是否正常运行 像这样:

$sid = $_SESSION['userID'];
$_sql = "insert into userkurse (userID,kursID) values ('$sid','1')";

此外,尝试回显$ _SESSION ['userID'],看看它是否返回有效值。

看看这个:

$_SESSION['userID'] = 3;
$_sql = "INSERT INTO userkurse (userID, kursID) VALUES ('".$_SESSION['userID']."', '1')";
echo $_sql; // this returns : INSERT INTO userkurse (userID, kursID) VALUES ('3', '1')