it-swarm.com.de

Wie kann ich eine Joomla-Abfrage ausdrucken?

Angenommen, Sie haben eine Abfrage mit Joomla erstellt.

// 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();

Beispiel von hier: https://docs.joomla.org/Selecting_data_using_JDatabase

Gibt es einen Befehl zum Ausdrucken der Abfrageanweisung (nicht das Ergebnis, sondern das tatsächliche SQL)?

13
Mat Kay

sie müssen __toString () echo

echo($query->__toString());

mehr Infos gibt es hier

https://docs.joomla.org/API16:JDatabaseQuery/_toString

Ich hoffe es hilft

17
Piero Marsilio

Sie können auch die Funktion replacePrefix von Joomla verwenden, die die Abfrage in einem Format ausgibt, das direkt in PhpMyAdmin eingefügt werden kann.

Hier ist ein Beispiel:

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

Gibt Folgendes aus:

SELECT `something` FROM `jos_content`
9
Lodder

Sie können auch die systemeigene Methode dump() verwenden: echo $query->dump();

5
Dmitry Rekun

Das JDatabaseQuery -Objekt verfügt über eine __toString() -Funktion, die die Abfrage ausgibt, sodass Sie Folgendes tun können:

echo $db->getQuery();

Oder wenn Sie es an eine Funktion übergeben möchten, können Sie es zuerst explizit in einen String umwandeln:

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

Mit der Joomla-Debug-Funktion erhalten Sie viele Informationen zu den Abfragen, die beim Laden Ihrer Website ausgeführt werden.

0
Klaus Veliu
echo $query;

wird gut tun.

dies nutzt diesen Code

echo($query->__toString());