注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

淘尽网 官方博客

淘尽网http://www.tao3w.com做最好的比价网站

 
 
 

日志

 
 
关于我

淘尽网 http://www.tao3w.com 做最好的比价网站,做最好的数据抓取专家。

网易考拉推荐

DooPHP读取数据库列表的简便方法  

2010-05-25 16:07:55|  分类: DooPhp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、当仅仅是单独的一个表时候,无任何关联

先看例子,是读取表v_device_groups表,where条件是name='cptclk_mm_cnz',并且是读取第一条记录,返回的是符合条件一个结果数组

Doo::LoadModel('VDeviceGroups');
$vdg = new VDeviceGroups;
$result = $vdg->get__name_first('cptclk_mm_cnz');

如果想读出where条件是name='cptclk_mm_cnz'所有记录

Doo::LoadModel('VDeviceGroups');
$vdg = new VDeviceGroups;

$result = $vdg->get__name('cptclk_mm_cnz');

返回的是一个对象列表

如果想读出where条件是name='cptclk_mm_cnz'并且module_id是223的记录呢,写法如下,

Doo::LoadModel('VDeviceGroups');
$vdg = new VDeviceGroups;
$result = $vdg->get__module_id__name_first('cptclk_mm_cnz','223');//2个字段写在中间module_id和name中间用‘__’连接,话说到这里,我发现doophp作者有一个小BUG,原作者设计的是使用‘_’连接,但是考虑到很多字段名中间有一条下划线,这样子被解析时候就曲解愿意了,比如module_id就被解析为module和id两个字段,因为我修改为中间用‘__’连接,也就是2个下划线。在DooModel.php文件中修改,原来是这么写的

if(strpos($field, '_')!==false){
                $field = explode('_', $field);
            }

修改为

if(strpos($field, '__')!==false){
                $field = explode('__', $field);
            }

2、当表有关联

首先需要在db.conf.php里面设置map,设置如下:

$dbmap['DeviceGroupTags']['has_many']['DeviceGroups']   = array('foreign_key'=>'id');
$dbmap['DeviceGroups']['belongs_to']['DeviceGroupTags'] = array('foreign_key'=>'device_group_id');

表device_groups和表device_group_tags关联device_groups.id=device_group_tags.device_group_id
Doo::LoadModel('DeviceGroups');
$vdg = new DeviceGroups;
$result = $vdg->relateDeviceGroupTags();//注意此处的格式,前面一定需要是relate然后后面跟上被关联的表device_group_tags的model层的类名。

上一行也可写成$result = $vdg->relate('DeviceGroupTags');

当被关联的device_group_tags有数据时,返回如下格式数据

DooPHP读取数据库列表的简便方法 - jjdoor - 我的博客
当被关联的device_group_tags无数据时,返回如下格式数据
DooPHP读取数据库列表的简便方法 - jjdoor - 我的博客
返回第一条记录
Doo::LoadModel('DeviceGroups');
$vdg = new DeviceGroups;
$result = $vdg->relateDeviceGroupTags_first();
DooPHP读取数据库列表的简便方法 - jjdoor - 我的博客
返回符合条件的记录,注意此处的写法
Doo::LoadModel('DeviceGroups');
$vdg = new DeviceGroups;
$vdg->name = 'bpfe_kgb_cnz';//where条件
$result = $vdg->relateDeviceGroupTags();
返回如下数据
DooPHP读取数据库列表的简便方法 - jjdoor - 我的博客
附:DeviceGroups类

我把model文件夹下的DeviceGroups类也贴出来

文件名:DeviceGroups.php

文件内容:

<?php

Doo::loadCore('db/DooModel');

class DeviceGroups extends DooModel
{
    public $id;
    public $name;
    public $module_id;
    public $description;

    public $_table = 'device_groups';
    public $_primarykey = 'id';
    public $_fields = array('id','name','module_id','description');

?>

 
 
  评论这张
 
阅读(520)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017