gpt4 book ai didi

php - mysqli_fetch_array() 不检索任何内容

转载 作者:行者123 更新时间:2023-11-29 08:32:34 25 4
gpt4 key购买 nike

我有一个简单的数据库表“accounts”,其中包含 3 个条目:“user”、“pass”和“ID”。 ID 是一个整数。

我试图从表中检索 ID 并将其存储到 $_SESSION['id'] 中,但运气不佳。

代码如下:

session_start();  

// Checks to see if the input account is valid
$result = mysqli_query($con,"SELECT * FROM accounts
WHERE user='$_POST[user]'
AND pass='$_POST[pass]'");

//Check to see if account exists
if(!mysqli_fetch_array($result))
{
$_SESSION['loggedin'] = false;
}
else
{
$_SESSION['loggedin'] = true;
$_SESSION['user'] = $_POST['user'];
$id = mysqli_fetch_array($result);
$_SESSION['id'] = $id['ID'];
echo $_SESSION['id'];
}

//header('Location: index1.php/');

?>

echo $_SESSION['id'] 没有输出任何内容。我尝试回显 $id['ID'] 本身,但它也不起作用。

在我的 index1.php 页面上,我确实设法使用相同的代码来检索信息,除了 $result 不使用 select 语句的 WHERE 和 AND 子句。

最佳答案

您实际上正在获取前两行(每次调用 mysqli_fetch_array() 都会获取一行结果),这可能不是您想要的。只需获取一次并重复使用结果:

// ...

//Check to see if account exists
$row = mysqli_fetch_array($result);
if(!$row)
{
$_SESSION['loggedin'] = false;
}
else
{
$_SESSION['loggedin'] = true;
$_SESSION['user'] = $_POST['user'];
$_SESSION['id'] = $row['ID'];
echo $_SESSION['id'];
}
// ...

正如评论中提到的,您的代码对 SQL 注入(inject)是开放的。阅读准备好的语句以防止这种情况发生或手动清理变量(不推荐!)。

关于php - mysqli_fetch_array() 不检索任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16178569/

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