เลือกคอลัมน์ mysql หลายคอลัมน์ใน joomla

ในโปรแกรม joomla ฉันขอสองคอลัมน์จากตารางฐานข้อมูลโดยใช้รหัสต่อไปนี้:

    $db=JFactory::getDbo();

    $query=$db->getQuery(true);

    $query->select($db->quoteName(array('keywords','en_GB_tips')))
    ->from('#__tooltip_explain');

    $db->setQuery($query);

    $keywords=$db->loadColumn(0);
    $tips=$db->loadColumn(1);

รหัสนี้เคยใช้งานได้ แต่เมื่อเร็ว ๆ นี้คำสั่งสุดท้าย: loadColumn(1) กลับมาว่างเปล่า ฉันลองหลายเวอร์ชัน แต่โดยพื้นฐานแล้วถ้าฉันขอมากกว่า 1 คอลัมน์/แถว เฉพาะเวอร์ชันแรกเท่านั้นที่มีข้อมูล เซิร์ฟเวอร์ของฉันเป็นอินสแตนซ์ apache2 ที่ใช้งาน php และ mysql 5.6 ล่าสุด ฉันยังลองบนเซิร์ฟเวอร์อื่นที่ใช้ apache2 ด้วย แต่มี mariadb เป็นฐานข้อมูลและมันก็ใช้งานไม่ได้เช่นกัน อย่างไรก็ตาม ฉันทำงานบนเซิร์ฟเวอร์เก่าที่มี mysql 5.5

ไม่มีใครมีความคิดว่าทำไมสิ่งนี้ถึงใช้งานได้กับ mysql 5.5 และไม่ใช่ฐานข้อมูลอื่น (ฉันไม่ได้เป็นเจ้าของเซิร์ฟเวอร์ที่มี mysql 5.6 ดังนั้นฉันจึงไม่แน่ใจว่าเพิ่งอัปเดตจาก 5.5 เป็น 5.6 หรือไม่)


person Niels ten Thije    schedule 24.11.2015    source แหล่งที่มา


คำตอบ (1)


ลองสิ่งนี้

$db    = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('keywords','en_GB_tips')))
      ->from('#__tooltip_explain');
$db->setQuery($query);
$results  = $db->loadObject();//if more than one row then loadObjectList()
$keywords = $results->keywords;
$tips     = $results->en_GB_tips;

คุณสามารถดูเอกสาร Joomla ได้ที่นี่

person Jobin    schedule 25.11.2015
comment
ฉันสามารถใช้สิ่งนี้เพื่อแก้ไขปัญหาได้ (แต่แล้ว loadAssocList($key,$column) จะดีกว่า) อย่างไรก็ตาม สิ่งนี้ไม่ได้ให้อาร์เรย์ที่มีค่าจากคอลัมน์ที่ร้องขอ แต่เป็นแถวในอาร์เรย์ 2 มิติ คำถามใหญ่คือเกิดอะไรขึ้นกับเซิร์ฟเวอร์ของฉันที่คำสั่ง loadColumn ใช้งานไม่ได้อีกต่อไป - person Niels ten Thije; 25.11.2015