2014-09-14 2 views
1

PHP 스크립트에 문제가 있습니다. 사용자에 대한 모든 정보를 얻으려면 필요합니다. 나는 정말로 문제가 무엇인지 모르지만, 내가한다면 echo $userInfo->username; 아무 것도 보여주지 않는다. 데이타베이스에 접속했습니다.PHP 함수 userInfo가 작동하지 않습니다.

함수 사용자 정보() :

function userInfo(){  

    try { 
     $stmt = $this->_db->prepare('SELECT * FROM members WHERE username = :username'); 
     $stmt->execute(array('username' => $_SESSION['username'])); 

     $row = $stmt->fetch(PDO::FETCH_OBJ); 

     $username = $row->username; 
     $firstname = $row->firstname; 
     $lastname = $row->lastname; 
     $worktitle = $row->worktitle; 
     $email = $row->email; 
     $admin = $row->admin; 
     $address = $row->address; 
     $city = $row->city; 
     $zipcode = $row->zipcode; 
     $phone = $row->phone; 

     return array(
    'username'  => $username, 
    'firstname'  => $firstname, 
    'lastname'  => $lastname, 
    'worktile'  => $worktitle, 
    'email'   => $email, 
    'admin'   => $admin, 
    'address'  => $address, 
    'city'   => $city, 
    'zipcode'  => $zipcode, 
    'phone'   => $phone 
    ); 

    } catch(PDOException $e) { 
     echo '<p class="warning">'.$e->getMessage().'</p>'; 
    } 
} 
+1

일부 디버깅이 필요합니다. 기능이 호출되고 있습니까? 쿼리가 성공적으로 실행되고 있습니까? '$ row'가 제대로 채워지는 것을 확인 했습니까? – andrewsi

+0

만약 $ row-> username을 반환하면; 그것은 잘 작동합니다. 내 함수는 다음과 같다 : $ user = new User; $ userinfo = $ user-> userInfo(); –

답변

2

함수는 연관 배열을 반환하지만 귀하의 설명에서, 당신은 객체와 같은 반환 값을 액세스 할 수 있습니다.

이 같은 기능을 쓰기, 객체와 같은 반환 값에 액세스하려는 경우, 당신은 배열처럼 반환 값에 액세스하려면

function userInfo() { 
    try { 
     $stmt = $this->_db->prepare('SELECT * FROM members WHERE username = :username'); 
     $stmt->execute(array('username' => $_SESSION['username'])); 
     $row = $stmt->fetch(PDO::FETCH_OBJ); // fetch as object 
     return $row; 
    } catch(PDOException $e) { 
     echo '<p class="warning">'.$e->getMessage().'</p>'; 
    } 
} 

$userInfo = userInfo(); 
echo $userInfo->username; // object syntax 

을이 같은 기능을 쓰기 :

function userInfo() {  
    try { 
     $stmt = $this->_db->prepare('SELECT * FROM members WHERE username = :username'); 
     $stmt->execute(array('username' => $_SESSION['username'])); 
     $row = $stmt->fetch(PDO::FETCH_ASSOC); // fetch as array 
     return $row;  
    } catch(PDOException $e) { 
     echo '<p class="warning">'.$e->getMessage().'</p>'; 
    } 
} 

$userInfo = userInfo(); 
echo $userInfo["username"]; // associative array syntax 
관련 문제