public function testSelectSomeFromOneTable() { $q = new SelectQuery(array('test')); $q->setWhere(new Condition('=', new Field('somefield'), 35)); $q->setLimit(10, 2); $this->assertEquals('SELECT `t0`.* FROM `test` AS `t0` WHERE `t0`.`somefield` = :p1 LIMIT 10 OFFSET 2', $q->sql()); $params = $q->parameters(); $this->assertEquals(35, $params[':p1']); }
public function testSqlFunctions() { $f = new SqlFunction('substring', array(new Field('name'), 5, 2)); $params = array(); $this->assertEquals('SUBSTRING(`t0`.`name`, 5, 2)', $f->getSql($params)); $this->assertEquals('substring', $f->getName()); try { $f = new SqlFunction('there_is_no_such_function', new Field('name')); $this->fail(); } catch (InvalidArgumentException $e) { } try { $f = new SqlFunction('substring', new AndOp(array())); $this->fail('wrong value accepted'); } catch (InvalidArgumentException $e) { } $q = new SelectQuery('test'); $q->setWhere(new Condition('>', new SqlFunction('length', new Field('foo')), 5)); $params = array(); $this->assertEquals('SELECT `t0`.* FROM `test` AS `t0` WHERE LENGTH(`t0`.`foo`) > :p1', $q->sql()); $parameters = $q->parameters(); $this->assertEquals('5', $parameters[':p1']); }