我遇到了以下问题:我想在数据库中插入$ _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')
答案 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')