2012-07-12 128 views
1

假设与数据库的连接以及对表和单元格的所有引用都是正确的......我怎么能得到这样的工作?PHP - 使用类获取用户信息

class User 
{ 

    private $_display; 
    private $_email; 

    public function __construct($username) 
    { 

     $fetch_user = mysql_query("SELECT * FROM `registered_users` WHERE `user_name`='$username'"); 
     $fetch_user = mysql_fetch_array($fetch_user); 

     $this->_display = $fetch_user['user_display']; 
     $this->_email = $fetch_user['user_email']; 
    } 

} 
$person1 = new User('username'); 
echo "Information: " . print_r($person1, TRUE); 

问题是它返回什么都没有。调试时不会抛出错误或任何东西。它是可行的方法吗? :S

+2

** **警告,你的代码*可能*容易受到SQL注入式攻击 – 2012-07-12 20:23:46

+0

什么不起作用?你想要发生什么?为你的问题增加一些特殊性,这样我们可以给出更好的答案。 – Jon 2012-07-12 20:24:33

+1

'$ person1 - > _ display; $ person1 - > _ email;'应该打印你想要的内容 – DarthVader 2012-07-12 20:24:51

回答

0

这里是大致我会做什么:

<?php 

    class User{ 

    private $username; 
    private $data; 

    public function __construct($username){ 
     $this->username = $username; 
     if($this->valid_username()){ 
     $this->load(); 
     } 
    } 

    private function load(){ 
     // Let's pretend you have a global $db object. 
     global $db; 
     $this->data = $db->query('SELECT * FROM registered_users WHERE user_name=:username', array(':username'=>$this->username))->execute()->fetchAll(); 
    } 

    public function save(){ 
     // Save $this->data here. 
    } 


    /** 
    * PHP Magic Getter 
    */ 
    public function __get($var){ 
     return $this->data[$var]; 
    } 

    /** 
    * PHP Magic Setter 
    */ 
    public function __set($var, $val){ 
     $this->data[$var] = $val; 
    } 


    private function valid_username(){ 
     //check $this->username for validness. 
    } 

    // This lets you use the object as a string. 
    public function __toString(){ 
     return $this->data['user_name']; 
    } 

    } 

如何使用:

<?php 

    $user = new User('donutdan'); 
    echo $user->name; //will echo 'dan' 
    $user->name = 'bob'; 
    $user->save(); // will save 'bob' to the database 
+0

PHP魔法获取器和设置器非常适合这些类型的对象。 http://php.net/manual/en/language.oop5.magic.php – donutdan4114 2012-07-13 02:26:35