/** * Delete current row * @return Row */ public function delete() { $this->table->triggerEvent('before.delete', $this); $builder = $this->table->builder(); $this->defaultBuilderWhere($builder); $query = $builder->delete(); $this->table->connection()->query($query); $this->reset(); $this->table->triggerEvent('after.delete', $this); }
/** * (non-PHPdoc) * @see db/go/Table#connection($newConnector) */ public function connection(IConnector $newConnector = null) { if ($newConnector instanceof IConnector) { return parent::connection($newConnector); } else { if ($this->connector instanceof IConnector) { return $this->connector; } } return GoMysql::instance(); }
/** * Copy table * @param $db * @param $name * @return Table */ public function copyTable($name, $db = null, $temp = false) { if (!$temp && !$name) { throw new Exception('New table has no name'); } $db = $db ? $db : $this->db(); $name = $name ? $name : 'temp_' . substr(md5(microtime(true) . rand(1, 9999)), 0, 10); $table = new Table(); $table->connection($this->connection()); $table->db($db); $table->name($name); $table->attrs($this->attrs()); $table->rowClass = $this->rowClass; $builder = $table->builder(); $query = $builder->createTableLike($temp, $this->db(), $this->name()); $table->connection()->query($query); $builder = $this->builder(); $builder->columns(array('*')); $query = $builder->insertSelect($table->db(), $table->name()); $this->connection()->query($query); return $table; }