我有一張用戶表,每個用戶都有一個唯一的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