Вывести строку запроса к базе данных, созданную через db_select(), можно командой print $query; где $query - объектная переменная запроса. Однако вместо аргументов будут выведены именованные параметры (placeholders) типа :db_condition_placeholder_1, :db_condition_placeholder_2 и т.д. Чтобы заменить их реальными аргументами, можно использовать функцию:

function _get_query_string(SelectQueryInterface $query) {
  $string = (string) $query;
  $arguments = $query->arguments();

  if (!empty($arguments) && is_array($arguments)) {
    foreach ($arguments as $placeholder => &$value) {
      if (is_string($value)) {
        $value = "'$value'";
      }
    }

    $string = strtr($string, $arguments);
  }

  return $string;
}

Она выводит запрос строкой в человекопонятном виде.

Наверх