Estoy tratando de recuperar información en mi base de datos. Quería mostrar todo pages
usando esta declaración, pero estoy obteniendo un espacio en blancoARRAY
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM $wpdb->wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
Salida:
ARRAY
EDITAR : después de cambiar las sugerencias a continuación, ahora estoy usando esto. pero todavía no obtengo ningún resultado:
global $wpdb;
$posts = $wpdb->wp_posts;
$result = $wpdb->get_results( " SELECT * FROM $posts WHERE 'post_type' = 'page' " );
foreach ($result as $page) {
echo $page->ID.'<br/>';
}
$wpdb->wp_posts
con llaves, es decir.{$wpdb->wp_posts}
..Respuestas:
fuente
echo $result
de asegurarme de que estoy recuperando datos dequery
lo que obtengo es imprimirArray
. cuando usoecho $page->ID
no obtengo nada. Realmente no estoy seguro de por qué ..$tablename = $wpdb->prefix.'posts';
esta parte no estaba en la documentación del Codex. ¿Puedes explicarme por qué funciona?Tienes un ligero malentendido:
Al llamar
$wpdb
, obtiene una lista de propiedades que contienen los nombres principales de las tablas:Entonces su consulta final se vería así :
fuente
$wpdb->prefix
no debería usarse para tablas integradas. Solo llámalos directamente. Corregido, esta es su respuesta también.Prueba el siguiente código. Me enfrenté al problema similar y lo resolví eliminando $ wpdb del campo 'DESDE'.
fuente
Por "matriz en blanco" se refiere a una 'matriz vacía' o es la salida 'ARRAY'. Si es lo último, entonces, es el resultado esperado. Debe recorrer esa matriz y mostrar los resultados en consecuencia.
Referencia: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
fuente