gpt4 book ai didi

php - 为什么我的 SQL 查询返回一个数组?

转载 作者:行者123 更新时间:2023-12-01 00:43:26 24 4
gpt4 key购买 nike

我有一张用户表,每个用户都有一个唯一的 ID。当我尝试为 session 获取他们的 ID 时,它出于某种原因返回了一个包含两个 ID 的数组。

所以在下面的代码中,$_SESSION['userid'] 变成了一个包含两个相同 ID 实例的数组。

虽然我不明白为什么...

$_SESSION['userid'] = getUserID($_POST['username']);


function getUserID($username)
{
include 'db.inc.php';
try {
$sql = "SELECT id FROM user WHERE username = '". $username. "'";
$s = $pdo->prepare($sql);
$s->bindValue(':username', $username);
$s->execute();
}
catch (PDOException $e) {
$error = 'Error getting userid for '.$username . '....error: '.$e;
include $_SERVER['DOCUMENT_ROOT']."/database/includes/pages/error.html.php";
exit();
}
$row = $s->fetch();
return $row;

}

最佳答案

您的问题出在您的$s->fetch() 中。默认情况下,PDO 获取一个由字段和数字索引的数组,例如$row['id']$row[0] 试试这个:

$row = $s->fetch(PDO::FETCH_ASSOC);
return $row['id'];

参见 http://php.net/manual/en/pdostatement.fetch.php获取更多信息。

关于php - 为什么我的 SQL 查询返回一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164016/

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