2013-06-19 110 views
0

這裏是我的函數/類Mysql查詢不分配/返回變量?

class user 
{ 
    public function get_data($username) 
    { 
     global $pdo; 
     $query = $pdo->prepare("SELECT * WHERE user_name = ?"); //display oldest to newest 
     $query->bindValue(1, $username); 
     $query->execute(); 
     return $query->fetch(); 
    } 
} 

這裏是我怎麼做我的電話。

$users = new user; 
$user = $users->get_data($_POST['username']); 
$_SESSION['username'] = $user['user_name']; 
$_SESSION['id'] = $user['user_id']; 
$_SESSION['credits'] = $user['user_credits']; 

這裏是我的HTML

<li class="right"><a href="#">Hello, <?php echo $_SESSION['username']; ?>.</a></li> 
<li class="right"><?php echo $_SESSION['credits']; ?></li> 
<li class="right"><?php echo $_SESSION['id']; ?></li> 

所以,出於某種原因,只有$_SESSION['username'];打印的在html出,信貸/ id不具有價值,因此不會顯示任何內容,是我的查詢權利?我認爲這應該工作,如果用戶名正在顯示。

+2

不應該先綁定值然後執行? – Voitcus

+0

感謝您指出每個人,但它仍然不會給我的價值,當我運行腳本,它只是給了我的用戶名。 – ZZPLKF

+0

因爲您的查詢是錯誤的,請參閱我的更新回答 –

回答

3

execute之前bindValue

$query->execute(); 
    $query->bindValue(1, $username); 

應該

$query->bindValue(1, $username); 
    $query->execute(); 

此外,查詢是錯誤的

"SELECT * WHERE user_name = ?" // SELECT from where? 

應該像

"SELECT * FROM myTable WHERE user_name = ?" 
+0

我忘了FROM,我甚至沒有看到!非常感謝你指出這一點! – ZZPLKF

0

執行˚F應該在綁定值後調用

$query->execute(); 
$query->bindValue(1, $username);