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)を出力するコマンドはありますか?
__toString()をエコーする必要があります
echo($query->__toString());
あなたはここでより多くの情報を見つけることができます
https://docs.joomla.org/API16:JDatabaseQuery/_toString
それが役に立てば幸い
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`
ネイティブdump()
メソッドを使用することもできます:echo $query->dump();
JDatabaseQuery
オブジェクトには、クエリを出力する__toString()
関数があり、次のことができます。
echo $db->getQuery();
または、それを関数に渡したい場合は、最初に明示的に文字列にキャストできます。
var_dump((string)$db->getQuery());
Joomlaのデバッグ機能は、Webサイトが読み込まれたときに実行されるクエリに関する多くの情報を提供します。
echo $query;
うまくいきます。
これはこのコードを利用します
echo($query->__toString());