Joomla提供了完善的数据库抽象层,以简化第三方开发人员使用。Joomla支持各种不同的SQL数据库类型,开发人员只需要调用Joomla提供的数据库API接口,系统就会自动处理数据库的适配以及兼容问题,极大的方便了开发者进行跨平台应用的开发。
自Joomla1.6之后,Joomla的数据库查询方式发生了较大的变化,推荐使用构建查询对象的方式来查询(当然目前系统仍然支持字符串的查询)。 数据库查询对象支持链式操作,可以方便的写查询语句。
链接数据库
我们使用JFactory::getDBO()
方法就可以获得当前的数据库链接对象。系统会自动的使用configruation.php
中的链接信息进行链接。代码如下:
$db = JFactory::getDBO();
获得查询对象
为了获得一个查询对象,首先需获得数据库的链接对象,然后调用链接对象的getQuery
方法。代码如下:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
JDatabaseDriver::getQuery方法接受一个可选的参数:$new .这是一个boolean值,默认为false,表示是否新获得一个查询对象。
在查询对象中,提供了很多的方法,比如书select() ,where(),join().from(),order()
等等,基本上就是对SQL的关键词进行了封装,每一个关键词对应一个方法。查询对象支持链式操作,可以很方便的写出各种查询。一段典型的代码如下:
//常规查询语句
$query = 'SELECT * FROM #__zmax_users WHERE id=1'
//查询对象的方法
$query->select("*")->from("#__zmax_users")->where("id=1");
我们强烈推荐使用查询语句来写SQL,这样做大大的加强了代码的可移植性。
作者:张敏
原文:http://www.joomlachina.cn/shouce/doc/1916?article_id=1783