我最近学习了一些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;
我对自己的错误感到非常难过,是否有人能够指出我正确的方向或给出可能的解决方案?
答案 0 :(得分:5)
您选择Email
和Password
,没有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());