public function sqlite(UnitTester $I) { $I->wantToTest("Model validation by using SQLite as RDBMS"); /** @var \Phalcon\Di\FactoryDefault $di */ $di = Di::getDefault(); $connection = $di->getShared('db'); $di->remove('db'); $di->setShared('db', function () { $connection = new Sqlite(['dbname' => TEST_DB_SQLITE_NAME]); /** @var \PDO $pdo */ $pdo = $connection->getInternalHandler(); $pdo->sqliteCreateFunction('now', function () { return date('Y-m-d H:i:s'); }); return $connection; }); Di::setDefault($di); $this->success($I); $this->presenceOf($I); $this->email($I); $this->emailWithDot($I); $this->exclusionIn($I); $this->inclusionIn($I); $this->uniqueness1($I); $this->uniqueness2($I); $this->regex($I); $this->tooLong($I); $this->tooShort($I); $di->remove('db'); $di->setShared('db', $connection); }
public function rateAction() { // Getting parameters from the request $ideaId = $this->request->get('id'); $rating = $this->request->get('rating'); // Building database connection $db = new Sqlite(array('dbname' => '/tmp/idea.sqlite')); // Finding the idea in the database $sqlStatement = 'SELECT * FROM idea WHERE id = ?'; $row = $db->query($sqlStatement, array($ideaId))->fetch(); if (!$row) { throw new \Exception('Idea does not exist'); } // Building the idea from the database $idea = new Idea(); $idea->setId($row['id']); $idea->setTitle($row['title']); $idea->setDescription($row['description']); $idea->setRating($row['rating']); $idea->setVotes($row['votes']); $idea->setAuthor($row['author']); // Add user rating $idea->addRating($rating); // Update the idea and save it to the database $fields = array('votes', 'rating'); $values = array($idea->getVotes(), $idea->getRating()); $where = array('conditions' => 'id = ?', 'bind' => array($ideaId)); $db->update('idea', $fields, $values, $where); // Redirect to view idea page $this->dispatcher->forward(array('controller' => 'idea', 'action' => 'index', 'params' => array('id' => $ideaId))); }
protected function getBackend($prefix = '') { $frontend = new CacheFrontend(['lifetime' => 10]); $connection = new DbAdapter(['dbname' => ':memory:']); // Make table structure $connection->getInternalHandler()->exec('CREATE TABLE "cache_data" ("key_name" TEXT PRIMARY KEY, "data" TEXT, "lifetime" INTEGER)'); return new CacheBackend($frontend, ['db' => $connection, 'table' => 'cache_data', 'prefix' => $prefix]); }
public function __construct(array $descriptor = NULL) { $db_file = '/tmp/amazingdreams-auth-unittest.db'; if (file_exists($db_file)) { unlink($db_file); } parent::__construct(array('dbname' => $db_file)); }
public function __construct(array $descriptor) { $this->_mDescriptor = $descriptor; try { $this->_dbExist = true; parent::__construct($descriptor); } catch (\Exception $e) { //DB not exists ! if ($e->getCode() == 1049) { $this->_dbExist = false; } } }
//威宁彝族回族苗族自治县 //改变初中 $sqlite_chuzhong = new Sqlite(['dbname' => 'db/chuzhong_area.db']); $sql = "select sch_name,pro_name,city_name,area_name from school_area"; $chuzhong = $sqlite_chuzhong->fetchAll($sql); $length = count($chuzhong); //$mysql->begin(); foreach ($chuzhong as $key => $val) { $val['pro_name'] = (int) $val['pro_name']; $val['city_name'] = (int) $val['city_name']; $val['area_name'] = (int) $val['area_name']; $sql = "update school set pro_code='{$val['pro_name']}',city_code='{$val['city_name']}',area_code='{$val['area_name']}' where sch_name='{$val['sch_name']}' and sch_type=3"; $mysql->execute($sql); echo "初中数据 {$length}/{$key}\n"; } //$mysql->commit(); //改变高中 $sqlite_gaozhong = new Sqlite(['dbname' => 'db/gaozhong_area.db']); $sql = "select sch_name,pro_name,city_name,area_name from school_area"; $gaozhong = $sqlite_gaozhong->fetchAll($sql); $length = count($gaozhong); //$mysql->begin(); foreach ($gaozhong as $key => $val) { $val['pro_name'] = (int) $val['pro_name']; $val['city_name'] = (int) $val['city_name']; $val['area_name'] = (int) $val['area_name']; $sql = "update school set pro_code='{$val['pro_name']}',city_code='{$val['city_name']}',area_code='{$val['area_name']}' where sch_name='{$val['sch_name']}' and sch_type=4"; $mysql->execute($sql); echo "高中数据 {$length}/{$key}\n"; } //$mysql->commit();
$logger->push($appender); $appender = new FileAppender($prefix . 'default.log'); $appender->setLogLevel(Logger::INFO); $logger->push($appender); if ($isCli) { $appender = new ConsoleAppender('php://stderr'); $formatter = new LineFormatter("%date% [%type%] %message%\n"); $appender->setFormatter($formatter); $appender->setLogLevel(Logger::ERROR); $logger->push($appender); } return $logger; }; $di['db'] = function () use($di, $config) { Model::setup(['notNullValidations' => false]); $conn = new DbAdapter($config->database->toArray()); if (isset($config->eventListeners->db)) { $em = $di['eventsManager']; foreach ($config->eventListeners->db as $listener => $options) { if (is_numeric($listener)) { $listener = $options; $options = null; } $em->attach('db', $di->get($listener, [$options])); } $conn->setEventsManager($em); } return $conn; }; if (extension_loaded('apcu')) { $di['modelsMetadata'] = function () use($config) {