コード例 #1
0
 public function testParameterizedCriteria()
 {
     $criteria = new KVDdb_Criteria();
     $criteria->add(KVDdb_Criterion::equals('provincie_id', 20001));
     $query = new KVDdb_SimpleQuery(array('gemeente_id'), 'gemeente', $criteria);
     $this->assertEquals($query->generateSql(KVDdb_Criteria::MODE_PARAMETERIZED), 'SELECT gemeente_id FROM gemeente WHERE ( provincie_id = ? )');
     $this->assertEquals($query->getValues(), array('20001'));
 }
コード例 #2
0
 /**
  * findByCriteria
  *
  * @param KVDdb_Criteria $c
  * @return KVDdom_DomainObjectCollection
  */
 public function findByCriteria(KVDdb_Criteria $c)
 {
     if ($c->count() == 0) {
         return $this->findAll();
     }
     // criterion toevoegen dat enkel termen uit deze thesaurus toont.
     $c->add(KVDdb_Criterion::equals('thesaurus_id', $this->parameters['thesaurus_id']));
     $c->addAscendingOrder('term');
     $c->addAscendingOrder('qualifier');
     $sql = sprintf('SELECT t.id, term, tt.id AS type_id, tt.name AS type_naam, qualifier, language, sort_key
                      FROM %s.term t
                         LEFT JOIN %s.term_type_code tt ON ( t.type = tt.id )', $this->parameters['schema'], $this->parameters['schema']);
     $sql .= $c->generateSql(KVDdb_Criteria::MODE_PARAMETERIZED);
     $stmt = $this->conn->prepare($sql);
     $values = $c->getValues();
     for ($i = 0; $i < count($values); $i++) {
         $stmt->bindValue($i + 1, $values[$i]);
     }
     $stmt->execute();
     $termen = array();
     while ($row = $stmt->fetch(PDO::FETCH_OBJ)) {
         $termen[$row->id] = $this->doLoad($row->id, $row);
     }
     return new KVDdom_DomainObjectCollection($termen);
 }
コード例 #3
0
ファイル: KVDdb_CriteriaTest.php プロジェクト: Tjoosten/kvd
 /**
  * testParameterizedWithSubSelect 
  *
  * Test een geparameterizeerde subselect. Tot voor kort (zie ticket 363 in de OEPS applicatie) bevatte het getValues( ) array een SimpleQuery object.
  * Probleem zou moeten opgelost zijn, een InSubSelect geeft enkel nog de values van zijn children terug.
  * @return void
  */
 public function testParameterizedWithSubSelect()
 {
     $crit = new KVDdb_Criteria();
     $crit->add(KVDdb_Criterion::equals('provincie_id', 20001));
     $query = new KVDdb_SimpleQuery(array('gemeente_id'), 'gemeente', $crit);
     $criterion = KVDdb_Criterion::inSubselect('gemeente_id', $query);
     $this->criteria->add($criterion);
     $this->assertEquals("WHERE ( gemeente_id IN ( SELECT gemeente_id FROM gemeente WHERE ( provincie_id = 20001 ) ) )", $this->criteria->generateSql(KVDdb_Criteria::MODE_FILLED));
     $this->assertEquals("WHERE ( gemeente_id IN ( SELECT gemeente_id FROM gemeente WHERE ( provincie_id = ? ) ) )", $this->criteria->generateSql(KVDdb_Criteria::MODE_PARAMETERIZED));
     $this->assertEquals(array('20001'), $this->criteria->getValues());
 }
コード例 #4
0
 /**
  * findByCriteria
  *
  * @since 30 okt 2007
  * @param KVDdb_Criteria $criteria
  * @return void
  */
 public function findByCriteria(KVDdb_Criteria $criteria)
 {
     $sql = $this->getSelectStatement() . ' ' . $criteria->generateSql(KVDdb_Criteria::MODE_PARAMETERIZED);
     $stmt = $this->_conn->prepare($sql);
     $values = $criteria->getValues();
     for ($i = 0; $i < count($values); $i++) {
         $stmt->bindValue($i + 1, $values[$i]);
     }
     return $this->executeFindMany($stmt);
 }
コード例 #5
0
 /**
  * getValues
  *
  * @since   1.4
  * @return  array
  */
 public function getValues()
 {
     return $this->criteria->getValues();
 }