Bagaimana saya bisa mencetak kueri Joomla?


14

Misalkan Anda telah membuat kueri dengan 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();

Contoh dari sini: https://docs.joomla.org/Selecting_data_using_JDatabase

Apakah ada perintah untuk mencetak pernyataan kueri (bukan hasil tetapi SQL aktual)?


Agar saya dapat membaca kueri sebagai "SELECT * FROM ...."
Mat Kay

1
mengapa tidak menggunakan mode debug?
jdog

Jawaban:



9

Anda juga dapat menggunakan replacePrefixfungsi Joomla yang membuang kueri dalam format yang dapat disisipkan langsung ke orang-orang seperti PhpMyAdmin.

Ini sebuah contoh:

$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);

Akan menampilkan yang berikut:

SELECT `something` FROM `jos_content`


4

The JDatabaseQuerybenda memiliki __toString()fungsi yang output query sehingga Anda dapat melakukan:

echo $db->getQuery();

Atau jika Anda ingin meneruskannya ke suatu fungsi, Anda dapat secara eksplisit melemparkannya ke string terlebih dahulu:

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

0

Fitur debug Joomla akan memberi Anda banyak informasi tentang kueri yang dijalankan ketika situs web Anda dimuat.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.