版本:2.5 Beta 4
描述:经常发现本地的网站无法登录后台,之前我跟了下登录框,发现原因是 uid = NULL 引起的。用其它方法隐藏掉了这个问题。
今天在其它界面需要用户信息时,发现 uid = NULL 又导致出问题了,所以就去跟了下 account.php 中的方法 。发现
file: models/account.php
中的 get_user_info_by_uid 方法的
$sql = "SELECT MEM.[i], MEB.[/i] FROM " . $this->get_table('users') . " AS MEM LEFT JOIN " . $this->get_table('users_attrib') . " AS MEB ON MEM.uid = MEB.uid WHERE MEM.uid = " . intval($uid);
这条语句似乎有问题,它查询的结果中有两个 'uid' 字段(同名),前一个正常,后一个值为 NULL。这导致了最后显示的用户信息中 uid=NULL。
PS: 我把语句改成
$sql = "SELECT MEM.*, MEB.id, MEB.introduction, MEB.signature, MEB.qq, MEB.homepage FROM " . $this->get_table('users') . " AS MEM LEFT JOIN " . $this->get_table('users_attrib') . " AS MEB ON MEM.uid = MEB.uid WHERE MEM.uid = " . intval($uid);
可以正常使用了。
阅读全文
收起全文