使用mysql_fetch_object

时间:2011-05-25 20:18:41

标签: php mysql oop

我最近学习了一些OOP PHP,并且在使用mysql_fetch_object()时遇到问题似乎已经遇到问题

  

注意:未定义的属性:   stdClass :: $ FirstName in   C:\ xampp \ htdocs \ includes \ login.php on   第10行

以下是我正在使用的代码:

class User
{
    public function CheckLogin()
    {
        $conn = new db();
        $_email = mysql_escape_string($this -> Email);
        $_password = mysql_escape_string($this -> Password);

        $data = mysql_query("SELECT Email, Password FROM users WHERE Email = 'test@test.com AND Password = 'test' AND Enabled = 1") or die(mysql_error());

        return mysql_fetch_object($data);
    }
}

我正在调用此函数如下:

$u = new User();
$user = $u -> CheckLogin();
echo $user -> FirstName;

我对自己的错误感到非常难过,是否有人能够指出我正确的方向或给出可能的解决方案?

3 个答案:

答案 0 :(得分:5)

您选择EmailPassword,没有Firstname,因此您无法访问它。

答案 1 :(得分:4)

您只使用查询获取两列:电子邮件和密码。因此,表中的所有其他字段(包括字段FirstName)将不会被提取,并且在从函数返回的对象中不可用。

尝试查询:

SELECT FirstName, Email, Password FROM users WHERE Email = 'test@test.com AND Password = 'test' AND Enabled = 1

这也将获取FirstName属性,或使用*来选择所有列,以便您可以使用获取对象中的任何字段。祝你好运!

答案 2 :(得分:0)

您只能获取电子邮件和密码而不是FirstName。

所以你的查询将是:

$data = mysql_query("SELECT FirstName,Email, Password FROM users WHERE Email = 'test@test.com AND Password = 'test' AND Enabled = 1") or die(mysql_error());