2011-08-21 114 views
1

我有一個網站,用戶剛剛登錄並將其重定向到用戶儀表板。我在SESSION中擁有user_id,所以我可以將它用於我的SELECT查詢來獲取有關用戶的其他信息。瞭解PHP準備好的語句

我的問題是,我如何使用Prepared Statements來獲取我需要的變量,而不使用foreach語句或while語句。它只是針對特定用戶登錄的,而不是爲多個用戶顯示信息。

每一個例子,我擡頭是這樣的:

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5"; 

if ($stmt = $mysqli->prepare($query)) { 

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

/* bind result variables */ 
$stmt->bind_result($name, $code); 

/* fetch values */ 
while ($stmt->fetch()) { 
    printf ("%s (%s)\n", $name, $code); 
} 

/* close statement */ 
$stmt->close(); 
} 

/* close connection */ 
$mysqli->close(); 

它必須在一個while語句?我只需要頂部的變量,所以我可以顯示常規頁面,然後在需要時使用變量。那有意義嗎?

只是希望瞭解更多,並更好地瞭解它是如何工作的。

+0

你能澄清一下你的意思嗎?「頂部變量」? –

+0

這不是一個準備好的陳述的好例子。這基本上只是一種將結果集直接檢索到局部變量範圍的方法。 – mario

+1

'while'陳述只是一次抓取每條記錄。如果您只檢索一條記錄,則根本不需要循環。如何檢索該用戶的所有必需信息取決於用戶數據如何存儲在數據庫中。你能告訴我們你的數據庫結構嗎? – AgentConundrum

回答

1

如果你只需要在上面記錄着:

/* fetch values */ 
$stmt->fetch(); 
printf ("%s (%s)\n", $name, $code); 

$stmt->fetch將獲取的第一行,你不要,除非你想繼續通過所有的行需要的while

+0

謝謝。我嘗試過一次,但沒有奏效,但是我意識到這是因爲我回應了像這樣的變量,並且不斷收到錯誤,然後將其更改爲<?php echo $ var; ?>它的工作! – Drew

+0

Woop!樂意效勞。 –