我有一张用户表,每个用户都有一个唯一的 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'];
关于php - 为什么我的 SQL 查询返回一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164016/