Joomla提供了一个成熟的数据库抽象层而简化使用,本教程就是帮助如何使用这个层。
1. 为什么要用JDatabase类?Joomla设计能使用几种数据库系统。JDatabase类自动创建数据库链接,仅要两行代码就可以从数据库返回不同格
式的结果。采用Joomla数据库层确保了最大限度的灵活和兼容。
2. 数据库查询
// 获取数据库对象
$db = JFactory::getDBO();
$query = "SELECT * FROM #__example_table WHERE id = 999999";
$db->setQuery($query);
首先我们初始化数据库对象,然后我们准备查询语句。可以使用通常的sql语法,唯一需要改变的是表前缀。为了使尽可能的灵活,Joomla为前
缀采用了一个占位符 #__,接下来是setQuery()。
如果不是为了从数据库返回信息,而是插入一行数据,就需要使用更多的函数。为了是sql语句符合sql语法,我们需要使用Quote,保证每一个
value都由了引号包含。
无论你想做什么,都需要setQuery()
关于JDatabase类,请看 Joomla源代码解析(八) JDatabase 类
3. 执行查询,Joomla提供几个不同的函数,它们有不同的返回值。
基本查询函数
query
getAffectedRows
explain
insertid
insertObject
4. 返回结果集
loadResult //返回第一行,第一个字段
loadObject //返回第一行
loadRow //返回数组,第一行
loadResultArray
loadObjectList //返回多行row对象
loadRowList //返回多维数组
loadAssocList //散列数组
5. 提示
子查询最好采用二次查询来解决。