可参考: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空间