我一直在尝试存储 session userUid
并将其放入数据库中的 id 下。我希望它合并来自不同数据库的两个 ID。
我尝试将 userUid
设置为变量并将其放入数据库。 userUid
是注册/登录页面的 ID,profiles 是我试图将其插入的数据库。
if(!isset($_SESSION['userUid'])){
header("location: index.php"); // Redirecting To Home Page
$switch = $_SESSION['userUid'];
$Asql = "INSERT INTO profile (id) VALUES ('$switch');" ;
mysqli_query($conn2, $Asql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo $row['id'] . "<br>";
}
}
}
我希望它将新插入的 $_SESSION['userUid']
作为数据库配置文件中的“id”输出。
最佳答案
注意事项
- 您当前的逻辑永远不会真正起作用,因为您仅在 session 值未设置时才执行查询
- 您应该总是在
header("Location:...");
调用之后exit;
- 您应该使用准备好的语句并通过占位符绑定(bind)您的值
- 插入查询没有
num_rows
(相当于插入/更新/删除查询的affected_rows
)或fetch_*()
方法关联和他们在一起。
if (!isset($_SESSION['userUid'])) {
header("location: index.php"); // Redirecting To Home Page
exit;
}
$sql = "INSERT INTO profile (id) VALUES (?);";
$stmt = $conn2->prepare($sql);
$stmt->bind_param("s", $_SESSION['userUid']);
$stmt->execute();
echo $stmt->affected_rows." rows inserted";
$stmt->close();
为了正确检查错误,您应该通过在创建 MySQLi 连接之前添加以下行来启用 MySQLi 异常模式。这意味着您必须对查询语句使用 try/catch
,但反过来又意味着您不必为每个函数调用进行单独的错误检查。
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
关于php - 如何在我的数据库中存储 $_SESSION 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57105556/