返回PHP类中的对象

时间:2014-08-02 11:39:11

标签: php oop pdo

我想在PHP PDO OOP中发生以下事情

$conn = mysqli_connect("localhost", "root", "blogger.g", "test");
$query = mysqli_query($conn, "SELECT * FROM users WHERE username='sandeep'");
$row = mysqli_fetch_assoc($query);
echo $row['password'];

我在OOP方式中使用的代码如下

class getResults{
    public $results;
    public function start(){
        try {
            $DTH = new PDO("mysql:host=127.0.0.1;dbname=test", "root", "blogger.g");
            $STH = $DTH->query("SELECT * FROM users WHERE username='sandeep'");
            $results = $STH->fetchAll(PDO::FETCH_OBJ);
            return $results;
        } catch (PDOException $e){
            return $e->getMessage();
        }
    }
}

var_dump(getResults::start());

我得到了以下输出

array(1) { [0]=> object(stdClass)#3 (3) { ["id"]=> string(1) "1" ["username"]=> string(7) "sandeep" ["password"]=> string(8) "password" } }

我应该如何访问每个属性?

2 个答案:

答案 0 :(得分:0)

如果使用while()循环遍历对象,则可以访问每一行。

while($row = getResults::start()) {
    echo $row->id;
}

最后一条提示:如果您已经在使用PDO,请使用预备语句。为了您的安全。

答案 1 :(得分:0)

由于您的查询会生成一行,因此请勿使用fetchAll

$results = $STH->fetch(PDO::FETCH_OBJ);

就足够了。现在,将返回的值存储在变量中:

$x = getResults::start();

由于$x是一个类对象,您可以通过->运算符访问其成员:

echo $x->username . "\n" . $x->password;

或者,您可以使用PDO::FETCH_ASSOC

$results = $STH->fetch(PDO::FETCH_ASSOC);
$x = getResults::start();
echo $x['username'] . "\n" . $x['password'];