/** * @return Nano_Db */ public function getDb() { if (null === $this->db) { $this->setDb(Nano::db()); } return $this->db; }
public function testLimit() { self::assertEquals('select * from t limit 1', sql::select(sql::ALL)->from('t')->limit(1)->toString(Nano::db())); self::assertEquals('select * from t limit 20, 10', sql::select(sql::ALL)->from('t')->limit(10, 20)->toString(Nano::db())); self::assertEquals('select * from t limit 0, 5', sql::select(sql::ALL)->from('t')->limitPage(1, 5)->toString(Nano::db())); self::assertEquals('select * from t limit 5, 5', sql::select(sql::ALL)->from('t')->limitPage(2, 5)->toString(Nano::db())); self::assertEquals('select * from t limit 10, 5', sql::select(sql::ALL)->from('t')->limitPage(3, 5)->toString(Nano::db())); }
/** * @return string * @param $type */ public function toSql($type = null) { if (null === $type) { $type = Nano::db()->getType(); } $format = 'Date::FORMAT_' . strToUpper($type); return $this->format(constant($format)); }
protected static function loadCache() { $result = array(); $rows = self::fetchThis(sql::select('*')->from(self::NAME)->order(Nano::db()->quoteName('order'))); foreach ($rows as $row) { $result[$row->name] = $row; } return $result; }
public function testDelete() { Nano::db()->insert(TestDbTable1::NAME, array('field1' => 3, 'field2' => 3, 'field3' => 'value 3 1', 'field4' => 'value 3 1')); $object1 = new TestDbTable1(array('field1' => 3, 'field2' => 3)); $this->assertFalse($object1->isNew()); $this->assertEquals('value 3 1', $object1->field3); $this->assertEquals('value 3 1', $object1->field4); $object1->delete(); $object2 = new TestDbTable1(array('field1' => 3, 'field2' => 3)); $this->assertTrue($object2->isNew()); $row = Nano::db()->getRow('select * from ' . TestDbTable1::NAME . ' where ' . Nano::db()->buildWhere(array('field1' => 3, 'field2' => 3))); $this->assertFalse($row); }
/** * @return string * @param Nano_Db $db */ public function toString(Nano_Db $db = null) { if (null === $db) { $db = Nano::db(); } $result = ''; foreach ($this->parts as $part) { if ($part['type'] !== sql::SQL_NONE) { $result .= ' ' . $part['type'] . ' '; } $result .= '('; if (null !== $part['operation'] && null !== $part['right']) { $result .= $this->operand($db, $part['left'], true) . ' ' . $part['operation'] . ' ' . $this->operand($db, $part['right'], false); } elseif (null !== $part['operation']) { $result .= $this->operand($db, $part['left'], true) . ' ' . $part['operation']; } else { $result .= $this->operand($db, $part['left'], true); } $result .= ')'; } return $result; }
public function testNestedExpr() { $expected = "((a = 'b') and (c = 'd')) or ((e = 'f') and (g = 'h'))"; $expr = sql::expr(sql::expr('a', '=', 'b')->addAnd('c', '=', 'd'))->addOr(sql::expr('e', '=', 'f')->addAnd('g', '=', 'h')); self::assertEquals($expected, $expr->toString(Nano::db())); }
<?php $sql = array(); $sql[] = 'insert into migration_test(id, comment) values (200, ' . Nano::db()->quote('second migration') . ')';
protected static function getTypeClass() { $result = 'Nano_Db_' . Nano::db()->getType(); if (!class_exists($result, false)) { require LIB . '/Nano/Db/' . Nano::db()->getType() . '.php'; } return $result; }
public function testToSqlAutodetect() { $string = '2009-11-04 01:02:03'; $this->assertEquals(Date::create($string)->format(constant('DATE::FORMAT_' . strToUpper(Nano::db()->getType()))), Date::create($string)->toSql()); }
protected function tearDown() { $this->invalidateCaches(); Nano::db()->delete(Setting_Category::NAME); }
<?php require dirName(__DIR__) . '/library/Nano.php'; Nano::instance(); $database = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : null; Nano_Migrate_Init::init(Nano::db($database));
<?php $sql = array(); $sql[] = 'create table migration_test(' . 'id integer primary key' . ', comment text' . ')'; $sql[] = 'insert into migration_test(id, comment) values (1000, ' . Nano::db()->quote('first migration') . ')';
/** * @return string */ public function toString(Nano_Db $db = null) { if (null === $db) { $db = Nano::db(); } return $this->buildSelect() . $this->buildFrom() . $this->buildWhere($db) . $this->buildGroup() . $this->buildHaving($db) . $this->buildOrder() . $this->buildLimit(); }