¿Como depurar consultas SQL ejecutadas por Drupal?

Por: MaxMendez --

En ocasiones cuando trabajamos con Drupal, requerimos depurar una o varias consultas a la base de datos y para estas tareas requerimos ver la consulta SQL que realmente se está ejecutando a la base de datos. Para realizar esta tareas debemos de tener instalado el módulo Devel, el cual pone a nuestra disposición la función dpq, la cual imprime el sentencia SQL de un objeto query, incluyendo la sustitución de argumentos proporcionados.

Como por ejemplo cuando tenemos en nuestro código una consulta como la siguiente:

 

 $query = db_select('node', 'n')
  ->fields('n', array('nid', 'uid', 'title'))
  ->condition('status', 1)
  ->orderBy('created', 'ASC')
  ->range(0, 1);

 

Utilizaríamos el siguiente código para imprimir la sentencia SQL que se ejecutara a la base de datos:

 

dpq($query);

 

Este código nos imprimiría en pantalla el siguiente resultado:

 

SELECT n.nid AS nid, n.uid, n.title AS title
FROM
{node} n
WHERE  (status = '1')
ORDER BY created DESC
LIMIT 1 OFFSET 0

 

Enlaces de Interés: