我对joomla和sql的经验很少,我真的很感谢你的帮助! 我正在使用joomla 2.5,我正在查询数据库中的数据并使用以下代码将其存储在内存中:
function getList()
{
$mainframe = JFactory::getApplication('site');
$db = JFactory::getDBO();
$query = " SELECT
*
FROM
#__ListUser
WHERE
$db->setQuery( $query );"
$rows = $db->loadObjectList();
return $rows;
}
我有3个问题,
非常感谢!任何帮助将非常感谢!
答案 0 :(得分:1)
代码应如下所示(我现在看不到它是如何工作的):
function getList()
{
// $mainframe = JFactory::getApplication('site'); // you don't need this line!
$db = JFactory::getDBO();
$query = " SELECT
*
FROM
#__ListUser
WHERE
1=1"; // just some condition to extract selected rows
$db->setQuery( $query ); // this sets the query and it's joomla, not sql.
$rows = $db->loadObjectList();
return $rows;
}
请注意WHERE ....需要一个条件(否则如果你想要所有行,删除WHERE以及后面的内容)
答案 1 :(得分:0)
尝试
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quote('*')
->from($db->quoteName('#__Listuser') // Do you really have upper case there?
->where('your condition with proper quoting');
$db->setQuery($query);
$rows = $db->loadObjectList();
答案 2 :(得分:0)
1
<强>酷:强>
如果要关闭或断开数据库会话,可以使用:
$db->disconnect(); // See: http://api.joomla.org/cms-3/classes/JDatabaseDriver.html#method_disconnect
但我想,那个想要使用JFactory :: getDBO()的其他模块,插件或模板的数据库连接;当时也关闭,需要重新开放。
更好:
在将查询转换为PHP变量后,您应该使用FREE RESULT:http://api.joomla.org/cms-3/classes/JDatabaseDriverMysql.html#method_freeResult
$db->freeResult();