Php 使用mysql\u fetch\u对象

Php 使用mysql\u fetch\u对象,php,mysql,oop,Php,Mysql,Oop,我最近学习了一些OOP PHP,似乎在使用mysql_fetch_object()时遇到了问题,收到了错误 注意:未定义的属性: stdClass::$FirstName在中 上的C:\xampp\htdocs\includes\login.php 第10行 以下是我正在使用的代码: class User { public function CheckLogin() { $conn = new db(); $_email = mysql_escap

我最近学习了一些OOP PHP,似乎在使用mysql_fetch_object()时遇到了问题,收到了错误

注意:未定义的属性: stdClass::$FirstName在中 上的C:\xampp\htdocs\includes\login.php 第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;

我被我做错的事情难住了,有人能给我指出正确的方向或给出一个可能的解决办法吗?

你正在选择
电子邮件和
密码,没有
名字,所以你不能访问它。

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

请尝试以下查询:

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

这还将获取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());