2009-10-05 11 views
8

Tengo problemas para obtener mis datos de fetchAll para imprimir de forma selectiva.Doppler de PDO e impresión fetchTodo

en MySQL normal, lo hago de esta manera:

$rs = mysql_query($sql); 
while ($row = mysql_fetch_array($rs)){ 
    $id = $row['id']; 
    $n = $row['n']; 
    $k = $row['k']; 
} 

En DOP, estoy teniendo problemas. Até los parametros, entonces yo estoy guardando los datos captados en $ rs como anteriormente, con la finalidad de bucle a través de él de la misma manera ..

$sth->execute(); 
$rs = $query->fetchAll(); 

Ahora viene la parte de problemas. ¿Qué hago en PDO para obtener algo que coincida con el ciclo while de arriba? Sé que puedo usar print_r() o dump_var, pero eso no es lo que quiero. Necesito hacer lo que solía hacer con mysql regular, como agarrar $ id, $ n, $ k de forma individual según sea necesario. ¿Es posible?

Gracias de antemano ..

Respuesta

26

Cabe

while ($row = $query->fetch(PDO::FETCH_ASSOC)) { 
    $id = $row['id']; 
    $n = $row['n']; 
    $k = $row['k']; 
} 

Si insiste en fetchAll, entonces

$results = $query->fetchAll(PDO::FETCH_ASSOC); 
foreach($results as $row) { 
    $id = $row['id']; 
    $n = $row['n']; 
    $k = $row['k']; 
} 

PDO::FETCH_ASSOC va a buscar nombres de columna y sólo omite el índice numérico.

+0

muchas gracias por su ayuda. Fui con 2, porque tengo que contarlo también antes de hacer bucles. Entonces tiene más sentido almacenarlo en $ resultados antes. – Chris

+2

$ query-> rowCount() _might_ return the count. – Zed

+2

No lo hará para las instrucciones SELECT. Consulte esta pregunta: http://stackoverflow.com/questions/460010/work-around-for-php5s-pdo-rowcount-mysql-issue/660032#660032 – Imran

Cuestiones relacionadas