Làm thế nào tôi có thể in ra một truy vấn Joomla?


14

Giả sử bạn đã xây dựng một truy vấn với 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();

Ví dụ từ đây: https : //docs.j Joomla.org/Selecting_data_USE_JDatabase

Có một lệnh để in ra câu lệnh truy vấn (không phải là kết quả mà là SQL thực tế)?


Để tôi có thể đọc truy vấn là "CHỌN * TỪ ...."
Mat Kay

1
Tại sao không sử dụng chế độ gỡ lỗi?
jdog

Câu trả lời:



9

Bạn cũng có thể sử dụng replacePrefixchức năng của Joomla để loại bỏ truy vấn theo định dạng có thể được chèn thẳng vào các mục thích của PhpMyAdmin.

Đây là một ví dụ:

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

Sẽ xuất ra như sau:

SELECT `something` FROM `jos_content`

5

Bạn cũng có thể sử dụng dump()phương thức gốc :echo $query->dump();


4

Đối JDatabaseQuerytượng có một __toString()hàm xuất ra truy vấn để bạn có thể làm:

echo $db->getQuery();

Hoặc nếu bạn muốn truyền nó cho một hàm, trước tiên bạn có thể chuyển nó thành một chuỗi:

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

0

Tính năng gỡ lỗi Joomla sẽ cung cấp cho bạn nhiều thông tin về các truy vấn được thực hiện khi trang web của bạn tải.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.