花了一个上午的时间,把论坛里的内容整理了一下,主要供自己以后查阅时用,同时也给新手一些参考。
 

关键字:验证码
 
1.       怎样取消架构的错误信息?
在配置里设置
        'displayErrors'    => false,
        'friendlyErrorsMessage'  => false,
如果还是有问题,则可能是flea的版本是1.0.6的.可以在入口文件中添加
function exit_on_error($ex)
{
    exit();
}
然后在 run() 之前:
__SET_EXCEPTION_HANDLER('exit_on_error');
 
2.       如何在smarty中写url
格式如下{{url controller=default action=index do=view id=1}}
生成的格式为:http://weburl/index.php?controller=default&action=index&do=view&id=1
       同时也可以自己在smarty的插件中扩展url的写法
 
3.       怎么修改controller 和 action这两个字符。。
'controllerAccessor' => 'ctl',
'actionAccessor'     => 'act',
 
4.       关联LIKE查询问题
HAS_MANY 关联
一个 posts 对应多个 comments

posts 表:
id 主键字段
title
content

comments 表:
comments_id 主键字段
title
content
post_id 外键字段
需要实现的查询条件: posts.id > 10 and comments.title like '%abc%'

Condition的写法:
$condition = array(
      array('con_ht_a.mystate',2,'!=','AND'),
      array('con_ht_b.myprocess2',$this->username,'LIKE')
);
 
5. AJAX类---FleaPHP开发框架QQ群聊天内容整理(4月22日更新)
问:AJAX提交表单,验证字段合法性都得在服务器端?
答:是

问:使用fleaphp的ajax怎么做loading效果啊?
答:beforeSubmit

问:fleaphp如果获得一个层中的内容呢,比如
<div id='source'>中国</div>
我想获得中国这两个字,怎么搞?
答:$("#source").val();

Ajax例子中Test3:
    function actionOnTest3()
    {
        $t = time();
        $arr = array(
            array('title' => '列表项目 1', 'created' => date('Y-m-d H:i:s', $t++)),
            array('title' => '列表项目 2', 'created' => date('Y-m-d H:i:s', $t++)),
            array('title' => '列表项目 3', 'created' => date('Y-m-d H:i:s', $t++)),
            array('title' => '列表项目 4', 'created' => date('Y-m-d H:i:s', $t++)),
            array('title' => '列表项目 5', 'created' => date('Y-m-d H:i:s', $t++)),
            array('title' => '列表项目 6', 'created' => date('Y-m-d H:i:s', $t++)),
        );

        FLEA::loadClass('FLEA_Ajax');
        echo json_encode($arr);
        exit;
    }

返回的是很清楚的json结构。

我希望这段数据是从一个数据库中读取,碰到2个问题。首先不会写,其次只要调用数据库输出就不对了。

    function actionOnTest3()
    {
        //区域1:就是插入了这么两行,Lists是访问数据库的类
        $this->_modelLists =& FLEA::getSingleton('Model_Lists');
        
        $lists = $this->_modelLists->findAll();

        //区域2:准备将读出来的数据生成Array,替换原有的写死的$arr数据
        $t = time();
        $arr = array(
            array('title' => '列表项目 1', 'id' => '1'),
            array('title' => '列表项目 2', 'id' => '2'),
            array('title' => '列表项目 3', 'id' => '3'),
            array('title' => '列表项目 4', 'id' => '4'),
            array('title' => '列表项目 5', 'id' => '5'),
            array('title' => '列表项目 6', 'id' => '6'),
        );

        FLEA::loadClass('FLEA_Ajax');
        echo json_encode($arr);
        exit;
    }

但,只是在[区域1]增加了2行,而[区域2]几乎就是原有内容没有改变。结果,返回Ajax的内容就变成了把index.php文件内容返回,而不是原来的 json 结构。

 
6         fleaphp的自动验证
用起来其实很简单的。就3个步骤。
1 定义你的webcontrol
 //单行文本框
$myform['Textbox']=self:ui->control(
'Textbox',
'username',
array('size' => 28, 'maxlength' => 22, ),
true
);
//密码输入框
$myform['Password']= self:ui->control(
'Password',
'password',
array('size' => 28, 'maxlength' => 22, ),
true   
);
2 定义你的array checkRules, 最好写在同属于 webcontrol 的class里。
var $Rules = array(   
array(    //用户名    
'name' => 'username',
'simpleType' => 'C',
'notNull' => true,
'minLength' => 6,
'maxLength' => 30,   
),   
array(    //密码    
'name' => 'password',
'simpleType' => 'C',
'notNull' => true,
'minLength' => 6,
'maxLength' => 30,   
),
);
3 校验webcontrol,在你须要校验的 函数中,加入
$objVerifier= & FLEA::getSingleton('FLEA_Helper_Verifier');    
//返回验证结果,如果返回空则验证通过
$checkrules=$objVerifier->checkAll($row,$Rules);
以上三步就实现了,validator 的功能。但,目前流行 ajax 了,估计FLEA_Helper_Verifier 会被冷落好一段时间呢。(*^__^*) 嘻嘻……
      
       一个实例:
       通过上一节我们轻松的用FleaPHP录入了一篇简单的文章,但是有个疑问,如果页面的JS代码被跳过去了,那不是就会创建空记录了么。
如果你觉得每次都写验证很烦,可以使用FleaPHP提供的验证功能,让它去我那成.
数据表:
<?php
CREATE TABLE `form` (
`
id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`
name` VARCHAR( 64 ) NOT NULL ,
`
email` VARCHAR( 128 ) NOT NULL ,
`
birth` DATE NOT NULL ,
`
created` INT NOT NULL
) ENGINE = MYISAM ;

姓名:
EMAIL:
生日:
根据之前的介绍构建表数据入口'Table_Form',并加入:
<?php
/**
     *
开启自动验证
     * @var string
     */
   
var $autoValidating = true;
   
/**
     *
指定验证助手,你可以在这里添加你自己的验证函数,甚至验证助手
     *
     * @var string
     */
   
var $verifier = 'FLEA_Helper_Verifier';
   
/**
     *
定义验证规则
     *
     * @var string
     */
   
var $validateRules = array(
        
'name' => array(
            
'minLength'  =>1,
            
'maxLength'  => 128
        
),
        
'birth' => array(
            
'minLength' =>1,
            
'complexType' => 'DATE'
        
),
        
'email' => array(
            
'minLength'  =>1,
            
'complexType'=> 'EMAIL'
        
),
    );
Demo.php
<?php
//
处理自动验证
   
function actionSaveValidate()
    {
        
$tableForm = & FLEA::getSingleton('Table_Form');
        foreach (
$_POST as $key =>$value) {
            if (empty(
$value)) {
                echo
"{$key}-empty";
                exit();
            }
        }
        
__TRY();
         
$tableForm->save($_POST);
         
$ex = __CATCH();
          if (
__IS_EXCEPTION($ex)) {
            echo
'验证错误';
            
$this->actionValidate();
        }
        echo
'新添加的表格';
        
$this->actionValidate();
    }

 
7.fleaphp的hasone的写法
article_index为主表,user、article_content为副表
class Model_Article
{
var $tableName = 'article';
var $primaryKey = 'aid';

var $belongsTo = array(
             array(
                  'tableClass'  => 'Model_User',
                  'foreignKey'  => 'uid',
                  'mappingName' => 'user'
              ),
          );

var $hasOne = array(
             array(
                 'tableClass'  => 'Model_Content',
                  'foreignKey'  => 'aid',
                 'mappingName' => 'content',
             ),
          );
}

 
8.调用不存在action时的错误提示页面
       先定义一个出错处理函数:
function Failedback($controllerName="Default",$actionName="Index",$controllerClass="Default")
{
   js_alert("你访问的页面不存在....","","javascript:history.back();");
}
然后再设置
       'dispatcherFailedCallback'=>'Failedback',
另外我们可以自己定义一个漂亮的出错显示页面.
定义一个error的controller类:
       Class Controller_Error(){
              Function actionIndex($message){
       //这里显示出错信息
}
}
如果用户设置了RABC访问控制,访问无法访问的动作时:'dispatcherAuthFailedCallback' => 'onAuthFailedCallback',
9. 如何进行表单验证?
问:如何简化FLEA_Helper_Verifier验证?
答:首先取得数据表对象的实例,然后:
$tablePosts =&FLEA::getSingleton('Table_Posts');
$rules = $tablePosts->meta;
FLEA::loadClass('FLEA_Helper_Verifier');
$verifier =& new FLEA_Helper_Verifier();
$result = $verifier->checkAll($_POST, $rules);
dump($result);
可以 dump($rules) 出来看看,把自己需要的规则补充上就行了

问:数据库不允许为空,验证规则如何做?
答:基本规则和你定义的数据表的属性保持一致。如果你的数据表某个字段为 notnull,那么验证时就要求必须有内容

问:如果字段检查email呢?
答:$rules['email']['complexType'] = 'EMAIL';
dump() 检查结果就知道了。获得结果后返回错误信息给js就行了

问: $_POST如果什么都不提交, $_POST的值是什么?
答:是一个长度为0的字符串,而不是 null

 
10. 基本类---FleaPHP开发框架QQ群聊天内容整理(4月22日更新)
问:调适模式和部署模式怎么区分?
答:载入 FLEA.php 之前定义常量 DEPLOY_MODE 为 true,就是部署模式

问:fleaphp1.0.70的注释在ZDE里怎么只有在utf-8下才能正常显示
答:1.0.70 已经全部是 utf8 编码的文件了,但仍然可以支持任意编码的应用程序

问:FLEA::loadClass($classname,true);的意思
答:没找到类的时候不显示错误信息

问:fleaphp要用header('Location:modify.php&controller=aa&action=bb');要带一个参数应该怎样写
答:header('Location:modify.php&controller=aa&action=bb&xxx=' . $_GET['xxx'])
或者header('Location:'.url('Default','Index',array('xxx'=>$_GET['xxx'])))

问:另外有gd的相关支持吗?
答:FLEA_Helper_Image 专门处理图像的

问:为什么FLEA_Helper_Pager的findall不提供排序参数啊?
答:有啊,构造函数里面排序

问:

if (!$product) {             
FLEA::loadClass('Exception_ProductNotFound');            
__THROW(new Exception_ProductNotFound($productId));           
 return false;        
 } //此代码在SHOP例子中
这段是什么意思啊,干吗要这样写啊?
答:为了捕捉错误。
问:为什么要把找不到记录的判断放到一个单独CLASS里面,然后通过调用新的类来捕捉错误?
答:这是一个异常类,抛出这个异常方便更外围的代码获得通知(有错误发生)。外围的代码捕获这个异常后,可以自己决定如何处理异常,例如显示错误信息。
举个例子:
我是客服,面向最终用户,你是技术人员,负责解决技术问题

现在用户找到我,说要如何如何。
我把这个需求转交给你,你开始处理。
处理后,你告诉我结果,成功还是失败。

然后由我来和用户沟通。

这样,技术人员的责任和客服的责任都明确了。不然技术人员就要直接和用户打交道了。

问:我如果在自己已经装好的环境下装FLEAPHP,在把FLEA的包考进去之后需要什么安装操作吗?
答:不需要了

问:&是什么?
答:& 是引用传递

问:fleaphp里面有些空函数,起什么作用啊
答:这是方便在IDE里面显示方法和参数提示的。也是创建新的数据库驱动时所用的模板。

问:_forward怎么用?
答:FLEA_Controller_Action._forward  ( $  controllerName,  
  $  actionName   
)

11. webcontrol的一个用法
你可以 将 所有 表单 都在 model 里写好。

$username= $ui->control('textbox', 'username',
                           array(
                        'class' => 'textbox',
                        'size' => 28,
                                'maxlength' => 22,
                            )
                );

$this->_executeView('tpl-add.html', $username);

然后在 模板页'tpl-add.html'内,仅用写一个
<from action="">
{{$username}}
</from

12. 【表查询方法】作一个find 参数的总结071024
<?php
/**
* 作一个find 参数的总结。
* 目前,中间表的 字段无法 作 condition,sort,limit 等条件限制
* http://www.fleaphp.org/bbs/viewthread.php?tid=1583&page=2#pid8550
*/
//主表 和 关联表mappingName 的条件 设定
$conditions =array(
array('Field','Value','LIKE','OR'),
array('mappingName.Field',$foo[$this->primaryKey],'=','OR'),
array('Field',$dateTime,'>'),
);
$sort='Feild ASC';
$limit =array(
1,3,
);
$fields = array('Field1','Field2','Field3',);
//
关联表部分
$links=$youTable->getLink('mappingName');
$links->sort='xxxxx DESC';
$Link->fields = array('linkField1','linkField2','linkField3');

/**
* $fields 也可以这样写
*
*/
$links=$youTable->getLink('mappingName');
$fields = array(
'Field1','Field2','Field3',
//关联表的fields
      'mappingName' => array('linkField1','linkField2','linkField3'),
);
$youTable->enableLink('mappingName');
$youTable->findAll($conditions,$sort,$limit,$fields);
$youTable->disableLink('mappingName');

* Date:071024

 
$condition =array(      
'in()' => array(1,2,3,) );
等同于
$condition=array(
array('id','1','=','OR'),
array('id','2','=','OR'),
 array('id','3','='),
);
 
13. [实例代码] 浅谈FleaPHP中的表关联!
      在关系数据库应用中,都离不开表与表的关联,表与表之间建立了关联关系后就可以提供很多方便的操作了,比如我要查询一个学生的信息,如果不建立学生与班级的关系的话,那么,只可以显示出学生的基本信息,而学生是属于某一个班级的,我现在想知道这个学生的信息与该学生所在的班级的信息,甚至是该学生的任课老师等信息,建立了学生表,与班级表,老师表之间的关系就方便好多了,用一个学生ID就可以查找出所有相关联的数据。
在FleaPHP中,支持以下四种关联关系:
·         HAS_ONE
·         HAS_MANY
·         MANY_TO_MANY
·         BELONGS_TO
分别对应FLEA_Db_TableDataGateway表中的 $hasOne,$hasMany,$manyToMany,$belongsTo 属性
我们下面就用 老师,学生,学生档案,班级的例子说说这几个关系。
以下是SQL代码:
//学生表 Create TABLE `testDB`.`student` (   
`stu_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,   
`stu_name` VARCHAR(20) NOT NULL,   
`stu_class_id` INTEGER UNSIGNED NOT NULL,   
PRIMARY KEY (`stu_id`)
)
//学生档案表 Create TABLE `testDB`.`stu_record` (   
`record_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,   
`stu_id` INTEGER UNSIGNED NOT NULL,   
`family_add` VARCHAR(150) NULL,   
`family_tel` VARCHAR(20) NULL,   
PRIMARY KEY (`record_id`)
)
//教师表 Create TABLE `testDB`.`teacher` (   
`teacher_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,   
`teacher_name` VARCHAR(20) NOT NULL,   
PRIMARY KEY (`teacher_id`)
)
 //班级表 Create TABLE `testDB`.`classes` (   
`class_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,   
`class_name` VARCHAR(20) NOT NULL,   
PRIMARY KEY (`class_id`)
)
//由于教师与班级是多对多关系,所有建立一个中间连接表以表示该关联
Create TABLE `testDB`.`link_teacher_classes` (   
`link_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,   
`teacher_id` INTEGER UNSIGNED NOT NULL,   
`class_id` INTEGER UNSIGNED NOT NULL,   
PRIMARY KEY (`link_id`)
)
现在,建好表之后,我们还要写几个继承自FLEA_Db_TableDataGateway父类的类,以对应数据库中的Student,Teacher,Classes表(连接表不用了)如下:
//学生表对应的类
class Model_Student extends FLEA_Db_TableDataGateway{         
var $tableName = 'student';         
var $primaryKey = 'stu_id';                  
/* 这是一对一关系,一个学生对应唯一的一个Record档案            
tableClass 对应要与之关联一对一的表的对象类,即档案表的类            
foreignKey是在档案表中,对应学生表的一个外键接连字段,            
用该字段标识该档案属于哪个学生            
mappingName 就是用于在你查询学生信息时,学生档案字段的别名         
*/         
var $hasOne = array(                     
'tableClass' => 'Model_Record',                     
'foreignKey' => 'stu_id',                     
'mappingName' => 'record'         
);         
/*            
这是从属关系,一个学生属于某一个班级,换过来说就是班级与学生一对多,一个班级有多个学生,而学生就只属于一个班级            
tableClass 指定该类要与之有从属关系的类,这里是班级类
foreignKey 这里指定的是该表里的连接外表的字段,这里是学生表的班级ID字段
注意:这里的foreignKey指的是本表的字段,而上面hasOne关系中的foreignKey
指的是外表中的字段,要注意区分清楚
mappingName这里就不多说了,跟上面的一样,也是用于显示区分的别名
*/         
var $belongsTo = array(                
array(             
'tableClass' => 'Model_Classes',             
'foreignKey' => 'stu_class_id',             
'mappingName' => 'class'         
));
}
//档案表对应的类
class Model_Record extends FLEA_Db_TableDataGateway{         
var $tableName = 'stu_record';         
var $primaryKey = 'record_id';
}
//教师表对应的类
class Model_Teacher extends FLEA_Db_TableDataGateway{         
var $tableName = 'teacher';         
var $primaryKey = 'teacher_id';         
/* 确立了教师与班级的多对多关系,一个教师可以教多个班级而一个班级也有多个教师
tableClass 指定要建立多对多关系的表的类            
joinTable 这个属性要注意一个,这个是指定教师表与班级表关系的连接表
由于二维表的数据结构的原因,所以多对多关系要用一个中间表(即连接表)来表示
连接表中就指明两个表各自的主键ID就可以了,以两个字段作复合主键,如不用复合
主键,就新增加一个字段作主键也可,这没关系         
*/         
var $manyToMany = array(                
array(             
'tableClass' => 'Model_Classes',             
'mappingName' => 'class',             
'joinTable' => 'link_teacher_classes',         
));
}
class Model_Classes extends FLEA_Db_TableDataGateway{         
var $tableName = 'classes';        
 var $primaryKey = 'class_id';         
/*这里确立了班级与学生的一对多关系tableClass 指定该表的类要与哪个表的类建立一对多关系
foreignKey 外键ID,这里即指定学生表中定义的班级ID,这个是外表的字段         
*/         
var $hasMany = array(array(             
'tableClass' => 'Model_Student',             
'foreignKey' => 'stu_class_id',             
'mappingName' => 'students'         
)         
);         
var $manyToMany = array(         
// 由于多对多关系是双向的,所以班级表也可以定义上与教师表的多对多关系         
// 也可以不写,看需求而定,比如你想查看某个班级信息时,一并显示该班         
// 有多少个任课老师的话,那就在这个班级类里加上关系,我这里就不写了。。。         
); }
以上的代码就建立好了关系了,现在只管使用就是了。
不过还提醒大家一点,在每个关系里,都有一个 ‘enabled’ 的属性,如果设置为 false的话,则是将该关系禁掉,所以查询出来的结果就没有该关系的相应数据,这样可以节省效率,按需要时才打开相应的关联,该属性默认为true 可以如下设置:
array(    
'tableClass' => 'Model_Student',    
'foreignKey' => 'stu_class_id',    
'mappingName' => 'students',    
‘enabled’ => false
)
现在我们来测试一下数据。(事先自行插入几行数据用以测试)
$classManager = FLEA::getSingleton('Model_Classes');
$class =& $classManager->find(array('class_id' => 1));
dump($class);
出现结果如下:
      这个例子已含盖了这四个关联关系的基本用法了,其它的就由你们来探索了,不久后,我将会发表一下这此关联方面的高级应用,有时间的话会写写这方面的东西。敬请期待!

更新时间到:2008-4-27 13:30.如有更新请以留言的形式回帖。谢谢!

© 2008 - 2010, Zeroun's Blog -- 黄志勇的博客!. 版权所有.

作者:
该日志由 admin 于2008年04月27日发表在PHP分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。 | +复制链接
转载请注明: 【原创】Fleaphp的论坛资料整理
关键字: , , , ,
【上一篇】
【下一篇】

您可能感兴趣的文章:

82 篇回应 (访客:4 篇, 博主:0 篇, 其它:78 篇)

  1. One again, your articles is very good.thank you!very much.

    #1楼
  2. admin 说道:

    $Condition=array(
    array(‘Title’,”%{$Keywords}%”,’like’,'or’),
    array(‘Cfrom’,”%{$Keywords}%”,’like’,'or’),
    array(‘Id’,”%{$Keywords}%”,’like’),
    );

    #2楼
  3. admin 说道:

    like查询:
    $conditions=array(
    array(‘title’,$keyword,’=',’AND’),
    array(‘class_id’,$class_id,’=',’OR’),
    array(‘content’,'%’.$keyword.’%',’like’,'AND’),
    array(‘class_id’,$class_id,’=')
    );

    #3楼
  4. hzy 说道:

    在FleaPHP中,凡是用到数据库查询的函数,都需要查询条件参数$conditions,现讲述用法如下:

    举例:
    // $conditions 保存查询条件
    $conditions = ‘level_ix > 1′;
    // $tableOrders 是一个订单数据表的表数据入口对象
    $order = $tableOrders->find($conditions, ‘created DESC’, ‘id, title, body’);
    $conditions = array(‘username’ => ‘dualface’);
    // $tableUsers 是一个用户信息数据表的表数据入口对象
    $user = $tableUsers->find($conditions);

    // $conditions 保存查询条件
    $conditions = ‘level_ix > 1′;
    // $tableOrders 是一个订单数据表的表数据入口对象
    $order = $tableOrders->find($conditions, ‘created DESC’, ‘id, title, body’);
    $conditions = array(‘username’ => ‘dualface’);
    // $tableUsers 是一个用户信息数据表的表数据入口对象
    $user = $tableUsers->find($conditions);$conditions 参数可以是整数、字符串和数组三种类型:

    1.如果 $conditions 参数是一个整数,则假定该整数为主键字段值。view plaincopy to clipboardprint?
    // 查询主键字段值为1的记录
    $user = $tableUsers->find(1);
    // 如果主键字段名为“id”,则生成的where字句为“WHERE `id` = 1”

    // 查询主键字段值为1的记录
    $user = $tableUsers->find(1);
    // 如果主键字段名为“id”,则生成的where字句为“WHERE `id` = 1”2.如果 $conditions 参数是一个字符串,则该字符串将直接作为查询条件,这种方式可以支持最灵活的查询条件。 例如:
    $conditions = ‘id find($conditions);
    //生成的where字句为“WHERE id < 3”

    $conditions = ‘id find($conditions);
    //生成的where字句为“WHERE id ’1′,
    );
    $user = $tableUsers->find($conditions);
    //生成的where字句为“WHERE `id` = 1”

    // 查询id字段值为3的记录
    $conditions = array(
    ‘id’ => ’1′,
    );
    $user = $tableUsers->find($conditions);
    //生成的where字句为“WHERE `id` = 1”3.2.如果 $conditions 参数是一个数组,但其中的元素没有键名, 则假定键值为自定义查询条件,例如:
    $conditions = array(‘id = 1′);
    // 生成的where字句为“WHERE `id` = 1”
    $user = $tableUsers->find($conditions);

    $conditions = array(‘id = 1′);
    // 生成的where字句为“WHERE `id` = 1”
    $user = $tableUsers->find($conditions);3.3.$conditions 为数组时,可以混用字符串和键值对两种风格:view plaincopy to clipboardprint?
    $conditions = array(
    ‘id ‘male’,
    );
    $user = $tableUsers->find($conditions);
    // 生成的where字句为“id < 3 AND `sex` = ‘male’”

    $conditions = array(
    ‘id ‘male’,
    );
    $user = $tableUsers->find($conditions);
    // 生成的where字句为“id array(1,2,3),
    )
    $user = $tableUsers->find($conditions);
    // 生成的where子句为“WHERE `id` IN (1, 2, 3)”

    // 假如主键名为“id”,需要查询id的值为1、2、3其中之一,则可以这样写:
    $condition = array(
    ‘in()’ => array(1,2,3),
    )
    $user = $tableUsers->find($conditions);
    // 生成的where子句为“WHERE `id` IN (1, 2, 3)”那么如果不是主键的话怎么写了呢? 也很简单,提供键值对即可。例如:
    $condition = array(
    ‘in()’ => array(
    ‘username’ => array(‘username1′,’username2′)
    )
    )
    $user = $tableUsers->find($conditions);
    // 生成的where子句为“WHERE `username` IN (‘username1′, ‘username2′)”

    $condition = array(
    ‘in()’ => array(
    ‘username’ => array(‘username1′,’username2′)
    )
    )
    $user = $tableUsers->find($conditions);
    // 生成的where子句为“WHERE `username` IN (‘username1′, ‘username2′)”4.find()函数中其它参数的含义和用法如下:

    4.1.$sort 参数指定查询时的排序方式,类型只能为字符串
    例如 ‘created ASC’ 表示按照“created”字段进行从小到大的排序。

    4.2.$fields 参数指定查询结果中要包含哪些字段,类型可以为字符串或数组
    当数据表的字段很多时,通过指定 $fields 参数可以避免查询不需要的字段,从而提高性能。
    $fields 参数即可是以“,”逗号分隔的字段名,也可以是包含多个字段名的数组,例如:
    $fields = array(‘title’, ‘created’);
    //也可以写成下面的字符串形式,两种写法作用相同,区别在于自动生成的字段名两边将会添加上“`”符号,以防止出现字段名与SQL关键字冲突的情况出现。建议手写时也加上“`”字符
    $fields = ‘title, created’;
    $user = $tableUsers->find(‘id find(‘id < 10′,NULL,$fields);推荐使用数组,这样表数据入口处理起来更快一些。

    #4楼

发表评论

[请申请gravatar头像,木有头像的评论可能不会被回复|头像相关帮助]

插入图片