예제 #1
0
파일: Allocine.php 프로젝트: schpill/thin
 public static function save($id)
 {
     $res = Data::query('movie', 'id_ac = ' . $id);
     if (!count($res)) {
         $info = static::getInfosMovie($id);
         $info['id_ac'] = $id;
         $info['id_video'] = null;
         $info['plateforme'] = null;
         $movie = Data::getById('movie', Data::add('movie', $info));
     } else {
         $movie = Data::getObject(current($res));
     }
     return $movie;
 }
예제 #2
0
파일: Sessionbis.php 프로젝트: schpill/thin
 public function checkTimeout()
 {
     $sessions = parent::query('thinsession', 'expire < ' . time());
     if (count($sessions)) {
         foreach ($sessions as $session) {
             $session = parent::getObject($session);
             $delete = parent::delete('thinsession', $session->getId());
         }
     }
 }
예제 #3
0
파일: Cachedata.php 프로젝트: schpill/thin
 /**
  * Delete an item from the cache.
  *
  * @param  string  $key
  * @return void
  */
 public function forget($key)
 {
     $this->_cleanCache();
     $res = Data::query('cache', 'key = ' . $key . ' && namespace = ' . $this->namespace);
     if (count($res)) {
         $obj = Data::getObject(current($res));
         $del = Data::delete('cache', $obj->getId());
     }
 }
예제 #4
0
파일: Querydata.php 프로젝트: schpill/thin
 public function join($fkTable, $condition)
 {
     $joinResults = array();
     $db = new \SQLite3(':memory:');
     $results = count($this->results) ? $this->results : $this->all()->sub();
     $fields = Arrays::exists($fkTable, Data::$_fields) ? Data::$_fields[$fkTable] : Data::noConfigFields($fkTable);
     $q = "DROP TABLE IF EXISTS {$fkTable}; CREATE TABLE {$fkTable} (id VARCHAR PRIMARY KEY, date_create";
     if (count($fields)) {
         foreach ($fields as $field => $infos) {
             $q .= ", {$field}";
         }
     }
     $q .= ");";
     $db->exec($q);
     $datas = Data::getAll($fkTable);
     foreach ($datas as $tmpObject) {
         $object = Data::getObject($tmpObject, $fkTable);
         $q = "INSERT INTO {$fkTable} (id, date_create) VALUES ('" . \SQLite3::escapeString($object->id) . "', '" . \SQLite3::escapeString($object->date_create) . "')";
         $db->exec($q);
         foreach ($fields as $field => $info) {
             $q = "UPDATE {$fkTable} SET {$field} = '" . \SQLite3::escapeString($object->{$field}) . "' WHERE id = '" . \SQLite3::escapeString($object->id) . "'";
             $db->exec($q);
         }
     }
     $fields = Arrays::exists($this->type, Data::$_fields) ? Data::$_fields[$this->type] : Data::noConfigFields($this->type);
     $q = "DROP TABLE IF EXISTS {$this->type}; CREATE TABLE {$this->type} (id VARCHAR PRIMARY KEY, date_create";
     if (count($fields)) {
         foreach ($fields as $field => $infos) {
             $q .= ", {$field}";
         }
     }
     $q .= ");";
     $db->exec($q);
     $datas = Data::getAll($this->type);
     foreach ($datas as $tmpObject) {
         $object = Data::getObject($tmpObject, $this->type);
         $q = "INSERT INTO {$this->type} (id, date_create) VALUES ('" . \SQLite3::escapeString($object->id) . "', '" . \SQLite3::escapeString($object->date_create) . "')";
         $db->exec($q);
         foreach ($fields as $field => $info) {
             $q = "UPDATE {$this->type} SET {$field} = '" . \SQLite3::escapeString($object->{$field}) . "' WHERE id = '" . \SQLite3::escapeString($object->id) . "'";
             $db->exec($q);
         }
     }
     list($field, $op, $value) = explode(' ', $condition, 3);
     $where = "{$fkTable}.{$field} {$op} '" . \SQLite3::escapeString($value) . "'";
     $q = "SELECT {$this->type}.id\n            FROM {$this->type}\n            LEFT JOIN {$fkTable} ON {$this->type}.{$fkTable} = {$fkTable}.id\n            WHERE {$where}\n            ";
     $res = $db->query($q);
     while ($row = $res->fetchArray()) {
         array_push($joinResults, $row['id']);
     }
     if (count($joinResults)) {
         $this->results = $joinResults;
     }
     return $this;
 }