【问题标题】:Using mysql_fetch_object使用 mysql_fetch_object
【发布时间】:2011-05-25 20:18:40
【问题描述】:

我最近在学习一些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;

我对自己做错的事情感到很困惑,谁能指出我正确的方向或给出可能的解决方法?

【问题讨论】:

    标签: php mysql oop


    【解决方案1】:

    你选择了EmailPassword,没有Firstname所以你不能访问。

    【讨论】:

      【解决方案2】:

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

      尝试查询:

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

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

      【讨论】:

        【解决方案3】:

        您只获取电子邮件和密码,而不是名字。

        所以你的查询会是这样的:

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

        【讨论】:

          猜你喜欢
          • 2010-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-16
          • 2013-05-12
          • 1970-01-01
          • 2011-03-30
          • 2011-06-03
          相关资源
          最近更新 更多