我有一张用户表,每个用户都有一个唯一的ID。当我尝试为会话获取其ID时,由于某种原因它将返回一个包含两个ID的数组。为什么我的SQL查询返回一个数组?
因此,在下面的代码中,$ _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;
}
代码你检查你的数据库?也许它实际上包含相同的对象两次? – Dima 2014-10-02 15:16:47
不是一个解决方案,但是你的SQL语句不正确。为了将参数绑定到PDO,它应该看起来像'SELECT id FROM user WHERE username =:username' – 2014-10-02 15:17:26
为了说明,'getUserID()'返回一个关联数组?你可以发布该数组的内容(做'print_r($ row)')?你期待它返回什么? – 2014-10-02 15:18:14