X

WordPress, qué hacer cuando $wpdb->get_results deja de funcionar

Si somos de los que en algunas ocasiones necesitamos crear algunas consultas un tanto personalizadas con wordpress, y mientras estamos programando nuestra consulta deja de funcionar, vamos a ver por qué $wpdb->get_results puede haber dejado de funcionar de repente.

Este tipo de consultas debemos realizarlas con sumo cuidado ya que podemos comprometer la integridad y seguridad de nuestro sistema, por ello debemos prestar atención a de donde salen los datos y cómo los utilzamos sobre la base de datos.

Vamos al tema que nos ocupa. Imaginemos que estamos programando una porción de script en php en el que utilizamos la función $wpdb->get_results, por ejemplo:

<?php $wpdb->get_results("SELECT * FROM wp_posts LIMIT 10"); ?>

Es un ejemplo, por lo que la consulta en sí seguramente no nos sirva para nada. Estamos programandonos el script, hacemos ciertas modificaciones, y de repente vemos que deja de funcionar tras unos minutos realizando cambios. El caso es que no somos capaces de dar con el problema que puede estar provocando esta situación.

Tras mucho mirar, uno de los motivos que puede provocarnos esto es que hayamos modificado el script dejándolo como lo siguiente:

<?php
$sql = "SELECT * FROM wp_posts LIMIT 10";
$wpdb->get_results($sql);
?>

Por lo que en teoría está correcto. Lo que no sabemos es que wordpress lo gestiona de una forma un tanto diferente (o extraña) por lo que utilizando la variable en la que hemos definido la consulta no nos va a funcionar, sino que deberemos poner la consulta entera dentro del get_results ya que solo de esta forma conseguiremos que nuestro código funcione.

Esta simple tontería puede darnos más de un dolor de cabeza simplemente por ignorar el que wordpress gestione de esta forma las variables en las funciones para realizar consultas mysql.

Si lo has podido solucionar de otra forma compártelo dejando un comentario.

VicHaunter:
Artículo relacionado
Los comentarios de Disqus están cargando....

Como todos, usamos cookies.