Использование mysql_fetch_object - PullRequest
2 голосов
/ 26 мая 2011

Я недавно изучал некоторые ООП 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;

Я довольно озадачен тем, что я делаю неправильно, сможет ли кто-нибудь указать мне правильное направление или дать возможное исправление?

Ответы [ 3 ]

5 голосов
/ 26 мая 2011

Вы выбираете Email и Password, Firstname нет, поэтому вы не можете получить к нему доступ.

4 голосов
/ 26 мая 2011

Вы выбираете только два столбца с вашим запросом: адрес электронной почты и пароль. Таким образом, все остальные поля в вашей таблице, включая поле FirstName, не будут выбраны и недоступны в объекте, возвращаемом вами из функции.

Попробуйте запрос:

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

Это также вызовет свойство FirstName или используйте * для выбора всех столбцов, чтобы вы могли использовать любое поле в выбранном объекте. Удачи!

0 голосов
/ 16 августа 2013

Вы получаете только электронную почту и пароль, а не имя.

Таким образом, ваш запрос будет выглядеть так:

$data = mysql_query("SELECT FirstName,Email, Password FROM users WHERE Email = 'test@test.com AND Password = 'test' AND Enabled = 1") or die(mysql_error());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...