fuel/app/classes/model/dbmock.php¶
```php linenums="1"
query($query); $output = array(); while($row = $ret->fetchArray(SQLITE3_ASSOC) ){ $output[] = $row; } return array(true, $output); } elseif ($type == 'insert') { $db->exec($query); return array(true, 'Inserted'); } elseif ($type == 'update') { $db->exec($query); return array(true, 'Updated'); } elseif ($type == 'delete') { $db->exec($query); return array(true, 'Deleted'); } } catch (\Exception $ex) { return array(false, $db->lastErrorMsg()); } } public static function allowed($query) { $type = strtolower(substr(trim($query), 0, 6)); return in_array($type, array('select', 'insert', 'update', 'delete')); } public static function get_db($identifier, $purpose) { $sql_path = APPPATH . 'tmp'; $sql_filename = $purpose . '_' . $identifier . '.db'; $sql_file = $sql_path . '/' . $sql_filename; $db = new \SQLite3($sql_file); return $db; } public static function get_fresh_db($identifier, $purpose) { $sql_path = APPPATH . 'tmp'; $sql_filename = $purpose . '_' . $identifier . '.db'; $sql_file = $sql_path . '/' . $sql_filename; //File::delete($sql_file); if (!\File::exists($sql_file)) \File::create($sql_path, $sql_filename, ''); else \File::update($sql_path, $sql_filename, ''); $db = new \SQLite3($sql_file); return $db; } public static function run_sql(&$db, $sql) { $sql = array_filter(static::split_sql_file($sql)); foreach ($sql as $s) $db->exec($s); } private static function split_sql_file($sql, $delimiter = ';') { // Split up our string into "possible" SQL statements. $tokens = explode($delimiter, $sql); // try to save mem. $sql = ""; $output = array(); // we don't actually care about the matches preg gives us. $matches = array(); // this is faster than calling count($oktens) every time thru the loop. $token_count = count($tokens); for ($i = 0; $i < $token_count; $i++) { // Don't wanna add an empty string as the last thing in the array. if (($i != ($token_count - 1)) || (strlen($tokens[$i] > 0))) { // This is the total number of single quotes in the token. $total_quotes = preg_match_all("/'/", $tokens[$i], $matches); // Counts single quotes that are preceded by an odd number of backslashes, // which means they're escaped quotes. $escaped_quotes = preg_match_all("/(?