2012-07-10 165 views
1

我是PHP新手,對PDO很新。每個人都在告訴我要學習。從PHP/PDO返回MySQL表的數據

我已經設法建立一個連接到我的數據庫,我試圖返回我的結果幷包裝DIV中的每一行,但它只返回一個包含所有列標題的數組。

我目前有:

$sql = "SELECT * FROM users"; 
$q = $conn->query($sql) or die("failed!"); 
while($r = $q->fetchAll(PDO::FETCH_ASSOC)){ 
    print_r($r); 
} 

可有人點我在正確的方向,或給我一些有用的網站,可以幫助?

+0

哪裏是你的數據庫連接? – jcho360 2012-07-10 20:39:23

+0

這就是我用一個include鏈接到的一個單獨文件,上面的工作是因爲它拉取我的數據,但是在一個醜陋的數組中 – Liam 2012-07-10 20:40:11

+2

tip:fetchAll()已經檢索到結果集中的所有行。在while循環中調用它沒有意義,因爲無論如何它都會在第一次迭代中獲取所有行。 – 2012-07-10 20:43:28

回答

3
$stmt = $conn->prepare("SELECT * FROM users"); 

$stmt->execute(); 

foreach($stmt as $row) 
{ 
    echo "<div>" . $row['column'] . "</div>" 
} 
+1

準備沒有參數的語句有什麼意義? – 2012-07-15 10:02:40

1

這是我更容易做到這一點...

while($r = $q->fetch(PDO::FETCH_LAZY)){ 

    echo '<div>'; 
    echo $r['id']; 
    echo $r['first_name']; 
    echo $r['surname']; 
    echo $r['hometown']; 
    echo $r['facebook']; 
    echo '</div>'; 

} 
+2

我催促你閱讀關於yii cms,你會明白爲什麼我告訴你使用字段數組; yii爲每個db表使用自動生成的類,每個類控制一個表;只需使用fields數組並將其作爲easyer;想象一下如果你必須編寫100個函數,並且在每個函數中你一次又一次地寫出所有的$ variable = $ row ['key'];如果你有40個領域呢?插入,搜索,更新,刪除...到很多代碼... – 2012-07-10 21:19:35

+0

這與yii沒有任何關係 - 他可以循環播放這些字段,就像他最初嘗試做的一樣......他只是放棄了:-) – prodigitalson 2012-07-10 22:42:54