コード例 #1
0
 protected function _basicQuery()
 {
     $statement = new QueryStatement();
     $select = (new SelectClause())->addExpression(new AllSelectExpression());
     $statement->addClause($select);
     $from = (new FromClause())->setTable('tbl');
     $statement->addClause($from);
     return $statement;
 }
コード例 #2
0
 public function testAssemblerPrepare()
 {
     $stm = new QueryStatement();
     $stm->addClause(new SelectClause())->from('mytable');
     $stm->where(EqualPredicate::create('field1', 'value1'));
     $assembler = new QueryAssembler($stm, false);
     $this->assertEmpty($assembler->getParameters());
     $this->assertFalse($assembler->isForPrepare());
     $this->assertEquals('SELECT * FROM mytable WHERE field1 = "value1"', (string) $assembler);
     $stm->andWhere(['AND' => [EqualPredicate::create('field2', null), NotEqualPredicate::create('field3', null)], 'OR' => BetweenPredicate::create('field4', 123, 456)]);
     $assembler = new QueryAssembler($stm, true);
     $this->assertNotEmpty($assembler->getParameters());
     $this->assertTrue($assembler->isForPrepare());
     $this->assertEquals('SELECT * FROM mytable WHERE field1 = ? AND ((field2 IS NULL AND field3 IS NOT NULL) AND field4 BETWEEN ? AND ?)', (string) $assembler);
     $this->assertEquals(['value1', 123, 456], $assembler->getParameters());
 }
コード例 #3
0
 public function testClause()
 {
     $statement = new QueryStatement();
     $this->assertFalse($statement->hasClause('SELECT'));
     $select = new SelectClause();
     $statement->addClause($select);
     $this->assertSame($select, $statement->getClause('SELECT'));
     $this->assertTrue($statement->hasClause('SELECT'));
     $statement->removeClause('SELECT');
     $this->assertFalse($statement->hasClause('SELECT'));
 }
コード例 #4
0
ファイル: QlDaoCollection.php プロジェクト: packaged/dal
 /**
  * Find all distinct values of a property in the collection
  *
  * @param $property
  *
  * @return array
  */
 public function distinct($property)
 {
     if ($this->isEmpty()) {
         $select = new SelectClause();
         $select->setDistinct(true);
         $select->addField($property);
         $originalClause = $this->_query->getClause('SELECT');
         $this->_query->addClause($select);
         $results = $this->_getDataStore()->getData($this->_query);
         $this->_query->addClause($originalClause);
         if (empty($results)) {
             return [];
         }
         return Arrays::ipull($results, $property);
     }
     return parent::distinct($property);
 }
コード例 #5
0
 protected function _getOrder()
 {
     $order = parent::_getOrder();
     $order[] = 'ALLOW_FILTERING';
     return $order;
 }