繁体   English   中英

PHP创建类函数以从表中检索数据

[英]Php create class function to retrieve data from table

我是php OOP的新手,我想创建一个类函数来获取注册用户的信息,该怎么办?

class Functions{

    public static function getUserInfo($user_id){
        $sql = mysql_query("SELECT * FROM members WHERE user_id='".$user_id."'");
        $rows = mysql_fetch_array($sql);

        if(mysql_num_rows($sql) >= 1){
            return $rows;
        }
    }
}

回显用户信息:

$user = new Functions();
$user->getUserInfo($_SESSION['user_id']);

echo $user->user_email;

我得到了带有“未定义属性”消息的输出结果,创建函数以检索用户信息的正确方法是什么? 谢谢。

也许吧?

class Functions{

    public static function getUserInfo($user_id){
        if(empty($user_id)) {
            return null;
        }
        // connect to db
        $sql = mysql_query("SELECT * FROM members WHERE user_id='".$user_id."' LIMIT 1");

        if(mysql_num_rows($sql) > 0){
                $row = mysql_fetch_array($sql, MYSQL_ASSOC);
                // close connection to db
                return $row;
        }
        // close connection to db
        return null;
    }
}

$userID = !empty($_SESSION['user_id']) ? (int)$_SESSION['user_id'] : null;
$user = Functions::getUserInfo($userID);
if($user !== null) {
    echo $user['user_email'];
}

这只是一个例子,使用mysqli_*PDO来管理数据库中的数据。

mysql_fetch_array返回数组,而不是对象。 $ user ['user_email']应该可以工作。

通常,正如您提到的OOP一样,我会说您的代码正在使用类,但不是OOP(如果我正确理解了您将如何构造它的话)。 您要做的只是将过程代码包装到一个类中。 使用OOP,您需要以一种具有独立对象的方式来构造代码,因此创建包含各种实用程序方法的“ Functions”类通常是一个坏主意。 考虑例如创建用户对象。

对于数据库抽象,我建议检查PDO( http://www.php.net/manual/zh/class.pdo.php )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM