我正在尝试检索附加到特定用户的所有计划的计划信息。他们已登录,并且他们的用户名保存在 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/