我正在尝试检查从cookie中检索到的id是否存在于数据库中,但是这部分代码
$stmt->bind_result($id, $uname);
和
$username = $uname;
根据这个说未定义变量我应该没有问题
http://php.net/manual/en/mysqli-stmt.bind-result.php
在zend中给我一个警告错误。在条件下分配。如果 stmt-> bind_result 对于mysqli来说也是正确的,我就不会说了。
/**
* Decode cookies and extract user ID
*/
$decryptCookieData = base64_decode($_COOKIE['rememberUserCookie']);
$user_id = explode("UaQteh5i4y3dntstemYODEC", $decryptCookieData);
$userID = $user_id[1];
/**
* check if id retrieved from the cookie exist in the database
* */
$db = dbconnect();
$stmt = $db->prepare('SELECT id, username FROM users WHERE id = ?');
$id = $userID;
$stmt->bind_param('i', $id);
$id = $userID;
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $uname);
if ($stmt->fetch()) {
$uid = $id;
$username = $uname;
/**
* Create the user session variable
*/
$_SESSION['id'] = $uid;
$_SESSION['username'] = $uname;
$isValid = true;
答案 0 :(得分:0)
试试这个$sth->fetch(PDO::FETCH_ASSOC);
并查看文档:{{3}}
控制下一行将如何返回给调用者。该值必须是PDO :: FETCH_ *常量之一,默认值为PDO :: ATTR_DEFAULT_FETCH_MODE(默认为PDO :: FETCH_BOTH)。
您可能尝试从数字数组中访问$row['id']
:
PDO :: FETCH_BOTH:将下一行作为由列名和编号索引的数组返回 排列 ( [name] =>香蕉 [0] =>香蕉 [color] =>黄色 [1] =>黄色 )