讀書筆記(Master joomla1.5第三章The database01)

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
)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值