symfony中DQL

来源:互联网 发布:qq飞车飞碟数据是多少 编辑:程序博客网 时间:2024/06/05 20:49

可参考:DQL

 

Doctrine::getTable('admin')->createQuery()->where('userid=?',$n)->getSqlQuery();//获取sql语句
Doctrine::getTable('admin')->createQuery()->select('col1,col2')->where('userid=?',$n);//选取某些列
Doctrine::getTable('admin')->createQuery()->select('col1,col2,count(id) as myid')->where('userid=?',$n);//别名列
   $rows=Doctrine_Query::create()->update('admin')->set('userid',"'admin'")->where('id=1')->execute();
   //echo $rows后显示更新行数

查询
   $ret=Doctrine::getTable('admin')->createQuery()->where('userid=?','admin')->fetchArray();//symfony中

   $q=Doctrine::getTable('admin')->find(1);//find(1)表示查找主键值为1,symfony中用
   echo $q->getId();

    $ret=Doctrine_Query::create()->from('admin')->fetchArray();
   print_r($ret);

   $rval=Doctrine::getTable('admin')->createQuery()->where('userid=?',$n)->execute();
    echo $rval[0]->getUserId(); //sf中用
    print_r($rval->toArray());//转成数组

返回记录数:
// (1) 在lib/model/doctrine/xxxxTable.class.php添加:
   public function sit_Count(){
          return $this->createQuery()->count();
   }
// (2) 在lib/model/doctrine/xxxx.class.php添加:
   public function s_count(){
        return $this->getTable()->createQuery()->count();
   }
在动作中的引用方法:
   (1) Doctrine_Core::getTable('表名')->sit_Count();
   (2) $s=new 表名();$count = $s->s_count();

 

findBy*()和findOneBy*()

Doctrine::getTable('tb')->findOneByCreatedAt('2011-01-09 12:12:12');//查找created_at为这个时间的一行记录

 

doctrine查询读取别名列
sql:select u.*,(select name from space where u.id=user_id) vvv from user u

$query=Doctrine::getTable('user')->createQuery('u')->select('u.*,(select name from space where u.id=user_id) vvv');
$e=$query->execute();
echo $e[0]->vvv;

 

转自:GT空间

原创粉丝点击