2012-11-01 16 views
5

मैंने हाल ही में पीडीओ का उपयोग करना शुरू किया था, इससे पहले कि मैं सिर्फ mysql का उपयोग कर रहा था .. अब मैं डेटाबेस से सभी डेटा प्राप्त करने का प्रयास कर रहा हूं।पीडीओ डेटाबेस से डेटा प्राप्त करें

$getUsers = $DBH->prepare("SELECT * FROM users ORDER BY id ASC"); 
$getUsers->fetchAll(); 
if(count($getUsers) > 0){ 
    while($user = $getUsers->fetch()){ 
     echo $user['username']."<br/>"; 
    } 
}else{ 
    error('No users.'); 
} 

लेकिन यह किसी भी उपयोगकर्ताओं के लिए, बस एक रिक्त पृष्ठ ..

+0

'त्रुटि (...)' क्या है? सुनिश्चित करें कि त्रुटि रिपोर्टिंग चालू है .... – Neal

उत्तर

14

PDO विधि fetchAll() एक सरणी/परिणाम सेट है, जो आप एक चर को असाइन और फिर उपयोग करने की आवश्यकता रिटर्न/के माध्यम से पुनरावृति नहीं दिखा रहा उस चर:

$users = $getUsers->fetchAll(); 
foreach ($users as $user) { 
    echo $user['username'] . '<br />'; 
} 

अद्यतन (execute() लापता)
इसके अलावा, यह लगता है कि आप टी बुला नहीं कर रहे हैं वह execute() विधि है जो आप से पहले बयान लेकिन तैयार आप वास्तव में डेटा लाने के बाद होने की जरूरत है:

$getUsers = $DBH->prepare("SELECT * FROM users ORDER BY id ASC"); 
$getUsers->execute(); 
$users = $getUsers->fetchAll(); 
... 
+0

यह वैसे भी काम नहीं कर रहा है .. खाली पृष्ठ, कोई त्रुटि नहीं। – chizijs

+0

@ user1791971 यदि आप 'var_dump ($ उपयोगकर्ता) करते हैं;', fetchAll() 'के बाद, यह क्या प्रदर्शित करता है? – newfurniturey

+0

क्या आपको त्रुटि जांचने और प्रदर्शित करने में त्रुटि है: 'error_reporting (E_ALL) जोड़ें; ini_set ('display_errors', '1'); 'स्क्रिप्ट –

2
So simple 
follow this step 
$sql = $dbh->prepare("SELECT * FROM users ORDER BY id ASC"); 
$sql->execute(); 
while($result = $sql->fetch(PDO::FETCH_ASSOC)){ 
?> 
<tr> 
<td><?php echo $result['field1'];?></td> 
<td><?php echo $result['field2'];?></td> 

</tr> 
<?php } ?> 
संबंधित मुद्दे