Предположим, вы создали запрос с помощью 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)?
joomla-3.x
database
Мэт Кей
источник
источник
Ответы:
вам нужно повторить __toString ()
Вы можете найти больше информации здесь
https://docs.joomla.org/API16:JDatabaseQuery/_toString
Надеюсь, это поможет
источник
#__
.Вы также можете использовать
replacePrefix
функцию Joomla, которая выводит запрос в формате, который может быть вставлен прямо в подобные PhpMyAdmin.Вот пример:
Будет выводить следующее:
источник
Вы также можете использовать нативный
dump()
метод:echo $query->dump();
источник
У
JDatabaseQuery
объекта есть__toString()
функция, которая выводит запрос, поэтому вы можете сделать:Или, если вы хотите передать его функции, вы можете явно привести ее к строке:
источник
Функция отладки Joomla даст вам много информации о запросах, которые выполняются при загрузке вашего сайта.
источник
все будет хорошо.
это использует этот код
источник