PHP 数据库从 MySQL 检索,其中 user_name 保存在 session 中

标签 php mysql session

我正在尝试检索附加到特定用户的所有计划的计划信息。他们已登录,并且他们的用户名保存在 session 中,我知道我需要将其与 MySQL WHERE 语句结合使用。这是我的代码:

<?php
$servername = "localhost";
$username = "root";
$password = "XXX";
$dbname = "name";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT plan_id, plan_name, plan_type, plan_active FROM plans WHERE user_name ='$_SESSION['user_name']'";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["plan_id"]. "<br>";
        echo "id: " . $row["plan_name"]. "<br>";
        echo "id: " . $row["plan_type"]. "<br>";
        echo "id: " . $row["plan_active"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

请注意,我在 WHERE 语句中使用了 $_SESSION['user_name']。我做错了什么?根本没有显示任何内容。

最佳答案

您没有在查询中正确传递 $_SESSION['user_name'] 变量。

试试这个:-

替换:-

$sql = "SELECT plan_id, plan_name, plan_type, plan_active FROM plans WHERE user_name ='$_SESSION['user_name']'";

带有:-

$sql = "SELECT plan_id, plan_name, plan_type, plan_active FROM plans WHERE user_name ='" . $_SESSION['user_name'] . "'";

我建议您使用准备好的语句。那么你就不会犯这些类型的错误。

关于PHP 数据库从 MySQL 检索,其中 user_name 保存在 session 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34954043/

相关文章:

php mysql..无法将变量分配给数据库中的字段名称

java - session - servlet,在 sevlet 中,我将静态变量设置为某些内容,并且这对于所有 session 都保持不变

php - Codeigniter session 数据,它们只是 cookie 吗?

php - 在oracledb中设置默认数据库

php - Sql sum() 来自不同表的列

php - Mysql返回特定的行号

java - 在 Hibernate 中为外键使用 MySQL 索引

php - 在数据库中存储上载图像的路径

php - 如何在 php 中获取带有时区的 ISO 8601 格式的时间戳

php - MySQL通过相同的id输出不同的值