joomla 1.5 db-schema:http://dev.joomla.org/downloads/Joomla15_DB-Schema.htm
//網絡文章:http://qkzz.net/article/c0c7142f-2d5b-4808-933a-f648d9397ba8_2.htm
返回结果集
loadResult //返回第一行,第一个字段
loadObject //返回第一行
loadRow //返回数组,第一行
loadResultArray、loadObjectList //返回多行row对象
loadRowList //返回多维数组
loadAssocList //散列数组
Joomla开发中连接外部数据库
如果需要访问的数据不在Joomla使用的数据库中,怎样访问外部数据库?这个数据库可能是同一台机器上的不同数据库,或者根本就不在同一台服务器上,甚至可能不是mysql数据库而需要其他的数据库驱动。你可以通过JDatabase::getInstance方法而达到你的目的。下面是一个连接外部数据库的例子:
<!--p <-->
$option['driver']= 'mysql';// 数据库驱动
$option['host'] = 'db.myhost.com';// 数据库所在的主机
$option['user']= 'username'; // 用户
$option['password'] = '*******'; // 密码
$option['database'] = 'databasename'; // 数据库名字
$option['prefix']= 'abc_'; // 数据库前缀(可以为空)
$db = & JDatabase::getInstance( $option );
?>
為了測試JDatabaseMySQL 的一些查詢接口
1.修改了libraries/joomla/config.php
class JFrameworkConfig
{
var $dbtype = 'mysql';
var $host = 'localhost';
var $user = 'root';
var $password = '';
var $db = 'joomla';
var $dbprefix = 'jos_';
var $ftp_host = '127.0.0.1';
var $ftp_port = '21';
var $ftp_user = '';
............
2.測試代碼如下:
loadResult:
//指定column 則返回值,有多筆則返回第一筆
public function test_loadResult(){
$this->assertNotNull($this->db);
$query = "SELECT name FROM "
.$this->db->nameQuote('#__users')
.' WHERE '
.$this->db->nameQuote('username')
.' = '
.$this->db->Quote('admin');
$this->db->setQuery($query);
$this->assertEquals("Administrator",$this->db->loadResult());
}
//不指定column 則返回值,則返回第一row 第一column
public function test_loadResult_firstcolumn(){
$this->assertNotNull($this->db);
$query = "SELECT * FROM "
.$this->db->nameQuote('#__users')
.' WHERE '
.$this->db->nameQuote('username')
.' = '
.$this->db->Quote('admin');
$this->db->setQuery($query);
$this->assertEquals(62,$this->db->loadResult());
$query = "SELECT * FROM "
.$this->db->nameQuote('#__banner')
.' WHERE '
.$this->db->nameQuote('name')
.' = '
.$this->db->Quote('OSM 2');
$this->db->setQuery($query);
$this->assertEquals(2,$this->db->loadResult());
}
loadResultArray:
public function test_loadResultArray(){
$this->assertNotNull($this->db);
$query = "SELECT alias FROM "
.$this->db->nameQuote('#__banner');
$this->db->setQuery($query);
print_r($this->db->loadResultArray());//返回alias列數組
$this->assertNotNull($this->db);
$query = "SELECT * FROM "
.$this->db->nameQuote('#__banner');
$this->db->setQuery($query);
print_r($this->db->loadResultArray(1)); //返回第二列數組
}
echo:
Array
(
[0] => osm-1
[1] => osm-2
[2] => joomla
[3] => joomlacode
[4] => joomla-extensions
[5] => joomla-shop
[6] => joomla-promo-shop
[7] => joomla-promo-books
)
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 1
[6] => 1
[7] => 1
)