2012-08-29 25 views
0

的我用這個方法來訪問我的MySQL數據庫:PHP MySQL的結果 - 使用不必要的foreach

$STH = $DBH->prepare("SELECT email FROM user WHERE unum = :u"); 
$STH->bindParam(':u', $json['u']); // Example only 
try { 
    $STH->execute(); 
    $STH->setFetchMode(PDO::FETCH_ASSOC); 
} catch(PDOException $e) { 
    echo $e->getMessage(); 
} 

現在,我知道,$ STH將只包含一個行,但我總是這樣做:

foreach($STH as $row){ 
    ... $row['email']... etc 

foreach是完全不必要的,使代碼更難以遵循。如何在不使用foreach的情況下訪問$STH中的email

謝謝。

+0

謝謝,大家:) – Nick

回答

5

只需讀取第一行可以使用

$row = $STH->fetch(); 
echo $row['email']; 

這將只得到1行。

+0

'$ row = $ STH-> fetch();''也可以正確的作爲'$ STH-> setFetchMode(PDO :: FETCH_ASSOC);'已經被定義。 –

+0

是的,你說得對,謝謝你的碰撞。 –

+0

甚至只是'echo $ STH-> fetchColumn();'。 – eggyal

2

使用

$row = $STH->fetch(PDO::FETCH_ASSOC); 
echo $row['email']; 

應該做你的絕招

+0

甚至只是'echo $ STH-> fetchColumn();'。 – eggyal