ฉันจะพิมพ์ข้อความค้นหา 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 .... "
Mat Kay

1
ทำไมไม่ใช้โหมดดีบัก
jdog

คำตอบ:


18

คุณต้องการที่จะสะท้อน __toString ()

echo($query->__toString());

คุณสามารถอ่านข้อมูลเพิ่มเติมได้ที่นี่

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

หวังว่ามันจะช่วย


ต้องการเพียงเพื่อให้ทราบว่าเมื่อใช้วิธีการนี้ก็ทิ้งแบบสอบถามที่มี#__คำนำหน้า Joomla
บ้านพัก

echo (สตริง) $ แบบสอบถาม;
JProof

9

นอกจากนี้คุณยังสามารถใช้replacePrefixฟังก์ชั่นของ Joomla ที่ทิ้งคำถามในรูปแบบที่สามารถแทรกลงในไลค์ของ 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`


4

JDatabaseQueryวัตถุมี__toString()ฟังก์ชั่นที่ผลการค้นหาเพื่อให้คุณสามารถทำได้:

echo $db->getQuery();

หรือถ้าคุณต้องการส่งผ่านไปยังฟังก์ชั่นคุณสามารถส่งไปยังสตริงก่อนได้อย่างชัดเจน:

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

0

คุณสมบัติการแก้ไขข้อบกพร่องของ Joomla จะให้ข้อมูลมากมายเกี่ยวกับข้อความค้นหาที่ดำเนินการเมื่อเว็บไซต์ของคุณโหลด


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.