public static function setUpBeforeClass() { // Create the test DB. self::$dbConnection = Database::getConnection(); $schemaPath = APPLICATION_PATH . '/../data/' . MerchantApplication::app()->getConfig()->db->schema; self::$dbConnection->exec(file_get_contents($schemaPath)); }
/** * Inserts the object data in the database. * * @return void */ protected function insert() { $insertFields = static::$tableFields; if (empty($this->{$this->tablePkName})) { $insertFields = array_slice($insertFields, 1); } $sql = 'INSERT INTO ' . static::$tableName . ' (' . implode(', ', array_keys($insertFields)) . ')' . ' VALUES (:' . str_replace(' ', ', ', implode(' :', $insertFields)) . ')'; $dbConnection = Database::getConnection(); $stmt = $dbConnection->prepare($sql); foreach ($insertFields as $fieldName) { $stmt->bindParam($fieldName, $this->{$fieldName}); } $stmt->execute(); $this->{$this->tablePkName} = $dbConnection->lastInsertRowID(); $this->setIsNew(false); }
#!/usr/bin/php <?php /** * This file is used to setup the SQLite database. * * @package MerchantApp\Shell * @author Ruslan Baydan <*****@*****.**> */ include 'shellApp.php'; use App\Models\Transaction; use Library\Model\Database; use Library\MerchantApplication; use App\Models\Merchant; use App\Models\CurrencyConverter; $config = MerchantApplication::app()->getConfig(); $db = Database::getConnection(); /* * Create the database tables. */ $schemaPath = APPLICATION_PATH . '/../data/' . $config->db->schema; if (!file_exists($schemaPath)) { throw new Exception('The schema file "' . $config->db->schema . '" does not exist.'); } $db->exec(file_get_contents($schemaPath)); /* * Parse data from CSV and insert into the database. */ if (!file_exists($config->testData->filepath)) { throw new Exception('Test data file "' . $config->testData->filepath . '" does not exist.'); } $testCsvData = array_slice(array_map('str_getcsv', file($config->testData->filepath)), 1);