Joomla 쿼리를 인쇄하려면 어떻게해야합니까?


14

Joomla로 쿼리를 구성했다고 가정합니다.

// Get a db connection.
$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

// Select all records from the user profile table where key begins with "custom.".
// Order it by the ordering field.
$query->select($db->quoteName(array('user_id', 'profile_key', 'profile_value', 'ordering')));
$query->from($db->quoteName('#__user_profiles'));
$query->where($db->quoteName('profile_key') . ' LIKE '. $db->quote('\'custom.%\''));
$query->order('ordering ASC');

// Reset the query using our newly populated query object.
$db->setQuery($query);

// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$results = $db->loadObjectList();

여기 예 : https://docs.joomla.org/Selecting_data_using_JDatabase

쿼리 문을 출력하는 명령이 있습니까 (결과는 아니지만 실제 SQL)?


"SELECT * FROM ...."으로 쿼리를 읽을 수 있도록
Mat Kay

1
왜 디버그 모드를 사용하지 않습니까?
jdog

답변:



9

Joomla의 replacePrefix기능을 사용 하여 PhpMyAdmin과 같은 형식으로 직접 삽입 할 수있는 형식으로 쿼리를 덤프 할 수도 있습니다.

예를 들면 다음과 같습니다.

$db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select($db->quoteName('something'))
      ->from($db->quoteName('#__content')); 
$db->setQuery($query);

// Dump the query
echo $db->replacePrefix((string) $query);

다음을 출력합니다 :

SELECT `something` FROM `jos_content`


4

JDatabaseQuery객체는이 __toString()당신이 할 수 있도록 쿼리를 출력 기능 :

echo $db->getQuery();

또는 함수에 전달하려면 먼저 명시 적으로 문자열로 캐스트 할 수 있습니다.

var_dump((string)$db->getQuery());

0

Joomla 디버그 기능은 웹 사이트가로드 될 때 실행되는 쿼리에 대한 많은 정보를 제공합니다.


0
echo $query;

잘 할 것입니다.

이것은이 코드를 사용합니다

echo($query->__toString());
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.