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 ....」としてクエリを読み取ることができること
マットケイ

1
なぜデバッグモードを使用しないのですか?
jdog

回答:



9

またreplacePrefix、PhpMyAdminなどに直接挿入できる形式でクエリをダンプするJoomlaの関数を使用することもできます。

次に例を示します。

$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のデバッグ機能は、Webサイトの読み込み時に実行されるクエリに関する多くの情報を提供します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.