2013-07-05 59 views
1

我正在做一個SELECT從數據庫中獲取值爲namelevel,但是當我獲取數據時我只能得到name。我試圖直接進入MySQL的查詢,它的工作原理,所以我認爲這是一個PHP的問題。這裏是我的代碼:PDO Fetchcolumn給出了undefined

$stmt = $dbh->prepare("SELECT name,level FROM user WHERE id = :id"); 

/*** bind the parameters ***/ 
$stmt->bindParam(':id', $_SESSION['id'], PDO::PARAM_INT); 

/*** execute the prepared statement ***/ 
$stmt->execute(); 

/*** check for a result ***/ 
$phpro_username = $stmt->fetchColumn(); 
$phpro_level = $stmt->fetchColumn(1); 

$phpro_username給我name,但$phpro_level回報undefined。 我看了看文檔,它應該是正確的。

回答

0

它看起來像你只是選擇2列名稱&級別。 在第一個fetchColumn中,您獲取第一列,即名稱列。 但是在第二個fetchColumn中,你想在跳過一列後取下一列,所以它會是FALSE。
試試這個:
$ phpro_username = $ stmt-> fetchColumn();
$ phpro_level = $ stmt-> fetchColumn();

 
public string PDOStatement::fetchColumn ([ int $column_number = 0 ]) 
Returns a single column from the next row of a result set or FALSE if there are no more rows. 

你可以做到這一點

/*** check for a result ***/ 
$phppro = $stmt->fetch(PDO::FETCH_ASSOC); 
$phpro_username = $phppro['name']; 
$phpro_level = $phppro['level']; 
+0

第一個沒有工作。但第二個人像一個魅力工作!謝謝! – funky

相關問題