Php 如何在数据库中插入$\u会话变量?

Php 如何在数据库中插入$\u会话变量?,php,database,mysqli,Php,Database,Mysqli,我遇到了以下问题:我想在数据库中插入$_会话['userID',],但它不起作用。它不使用以下代码向数据库中插入任何内容。在这种情况下,安全性并不重要 if(isset($_POST["joinKurs"])){ echo("<script>console.log('userID: ".$_userID." and KursID: 1 saved in database');</script>"); $_sql = "INSERT INTO userkur

我遇到了以下问题:我想在数据库中插入$_会话['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);
}
使用此选项,因为使用此选项将不会打印变量内的值,并且获取create的sql字符串无效

i、 e

你需要的是

"INSERT INTO userkurse (userID, kursID) VALUES('12345646edj','1')";
此外,使用

echo $_sql

验证创建的sql语句

您可以尝试将会话id存储到变量中,看看它是否工作 像这样:

$sid = $_SESSION['userID'];
$_sql = "insert into userkurse (userID,kursID) values ('$sid','1')";
另外,尝试回显$\u会话['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') 

我现在得到一个语法错误。分析错误:语法错误,意外的“{”检查我已删除
{}
,还要验证生成的sql以确定确切的错误。语法错误现在已消失,但仍不会向我的数据库发送任何内容。只需将
echo$\u sql;
放在下面打印生成的查询,并直接对数据库运行它。可能存在某些列约束,如要插入的数据长度,这可能是创造性的如果查询正确,则会出现问题。我将echo$\u sql;放在末尾,仍然没有任何更改。使用准备好的语句将使这变得更容易。
var\u dump($\u SESSION['userID']);
?您输出的是
$\u userID
,但尝试存储
$\u SESSION['userID']
-不用说,这些根本不是同一回事。但我使用哪一个并不重要。两者都不起作用。我以前试过,但也不起作用。会话的回音起作用。请澄清,当您回音$\u会话['userID'],它返回一个有效的int,对吗?是的,回显工作正常且正确。在Atul Sharma回答下的注释中,您可以看到sql语句是错误的。它写道:INSERT INTO userkurse(userID,kursID)值('3'));','1'),这似乎不正确。我不知道出了什么问题,我尝试回显查询,结果很好:在userkurse(userID,kursID)值('5','1')中插入会话id,当您尝试回显它时,返回的确切值是什么?
"INSERT INTO userkurse (userID, kursID) VALUES('12345646edj','1')";
echo $_sql
$sid = $_SESSION['userID'];
$_sql = "insert into userkurse (userID,kursID) values ('$sid','1')";
$_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')