2012-07-12 3 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); 

문제는 아무것도 반환하지 않습니다. 디버깅 할 때 오류 또는 아무 것도 던지지 않습니다. 그래도 가능한 방법인가요? :

<?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']; 
    } 

    } 

사용 방법 : S

+2

** 경고 **, 코드 * 수도 SQL 주입 공격 –

+0

을에 * 취약 작동하지 않는 것은 무엇입니까? 무슨 일이 일어나길 원하니? 우리가 더 나은 대답을 줄 수 있도록 귀하의 질문에 약간의 특이성을 추가하십시오. – Jon

+1

'$ person1 -> _ 디스플레이; $ person1 -> _ email;'원하는 것을 인쇄해야합니다. – DarthVader

답변

0

여기 내가 할 것 인 것이다

<?php 

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

PHP 매직 getter 및 setter는 이러한 유형의 객체에 적합합니다. http://php.net/manual/en/language.oop5.magic.php – donutdan4114

관련 문제