gpt4 book ai didi

php - 如何在我的数据库中存储 $_SESSION 值

转载 作者:行者123 更新时间:2023-11-29 07:19:22 25 4
gpt4 key购买 nike

我一直在尝试存储 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com