phalcon 中經常使用的phql語句

先引入Builder類sql

use Phalcon\Mvc\Model\Query\Builder as QueryBuilder;
public function mytestAction(){
    $builder = new QueryBuilder();
    //肯定查詢表
    $builder -> from(['parts'=>'Test3\Frontend\Models\Parts']);
    //關聯表
    $builder -> innerJoin('Test3\Frontend\Models\Robots', 'robots.id = parts.robots_id','robots');
    // 須要查詢的字段,這裏兩個表的字段均可以
    $builder -> columns([
        'robots.name',
        'parts.id',
        'count(parts.id) as count',  //當數據很大時,統計數據時用
    ]);
    // where條件
    $builder -> where('parts.id = :id:',array('id' =>1));
    // andWhere
    $builder -> andWhere('robots.name = :name:',array('name' => '你好'));
    
    
    //執行搜索
    if (isset($params['conditions'])) {
        foreach ($params['conditions'] as $field => $val) {
            if (!preg_match('/^\s*$/', $val)) {
               //執行模糊搜索
               $builder->andWhere("providers.$field like :$field:", array($field => '%' . trim($val) . '%'));
             }
         }
      }
    // 設置limit條件,order什麼的均可以日後加$builder->order()
    $builder->limit(5,5);        // $builder->limit($rows, ($currentPage - 1) * $rows);    注意:這裏的limit條件和原始sql語句中的limit語句恰好相反
   
    //獲取查詢對象
    $query = $builder->getQuery();
    //執行並返回結果
    $result = $query->execute();
    
    var_dump($result -> toArray());die;
    }
相關文章
相關標籤/搜索