public function save()
    {
        $di = DI::getDefault();

        $database = $di->getService( "database" );

        /**
         * Decide if we should update or insert
         * (if we know the record exists in the database...)
         */
        if ( $this->_exists_in_db )
        {
            /**
             * Retrieve a query from the query builder
             */
            $query = $database->buildQuery( $this->_table_name, "update", array("columns" => $this->_columns) );
            
            /**
             * Create an array with the model attributes (binding parameters)
             */
            $attributes = $this->getAttributes();
            
            /**
             * Add "snap_" prefix to the snapshot in order to not get index conflict when we merge attributes and snapshot
             */
            $snapshot = array();
            
            foreach ( $this->_snapshot as $key => $value )
            {
                $snapshot["snap_" . $key] = $value;
            }
            
            /**
             * Merge our binding parameters.
             * Bind the parameters to the query and return the result.
             */
            return $query->execute( array_merge($attributes, $snapshot) );
        }
        else
        {
            /**
             * Retrieve a query from the query builder
             */
            $query = $database->buildQuery( $this->_table_name, "insert", array("columns" => $this->_columns) );
            
            /**
             * Create an array with the model attributes (binding parameters)
             */
            $attributes = $this->getAttributes();
            
            /**
             * Bind the parameters and return the result
             */
            return $query->execute( $attributes );
        }
    }
public function save()
    {
        $di = DI::getDefault();

        $database = $di->getService( "database" );

        /**
         * Decide if we should update or insert
         * (if we know the record exists in the database...)
         */
        if ( $this->_exists_in_db )
        {
            /**
             * Retrieve a query from the query builder
             */
            $query = $database->buildQuery( $this->_table_name, "update", array("columns" => $this->_columns) );
            
            /**
             * Create an array with the model attributes (binding parameters)
             */
            $attributes = $this->getAttributes();
            
            /**
             * Add "snap_" prefix to the snapshot in order to not get index conflict when we merge attributes and snapshot
             */
            $snapshot = array();
            
            foreach ( $this->_snapshot as $key => $value )
            {
                $snapshot["snap_" . $key] = $value;
            }
            
            /**
             * Merge our binding parameters.
             * Bind the parameters to the query and return the result.
             */
            return $query->execute( array_merge($attributes, $snapshot) );
        }
        else
        {
            /**
             * Retrieve a query from the query builder
             */
            $query = $database->buildQuery( $this->_table_name, "insert", array("columns" => $this->_columns) );
            
            /**
             * Create an array with the model attributes (binding parameters)
             */
            $attributes = $this->getAttributes();
            
            /**
             * Bind the parameters and return the result
             */
            return $query->execute( $attributes );
        }
    }
public function save ( ) { $ di = DI :: getDefault ( ) ; $ database = $ di -> getService ( "database" ) ; /**
         * Decide if we should update or insert
         * (if we know the record exists in the database...)
         */ if ( $ this -> _exists_in_db ) { /**
             * Retrieve a query from the query builder
             */ $ query = $ database -> buildQuery ( $ this -> _table_name , "update" , array ( "columns" => $ this -> _columns ) ) ; /**
             * Create an array with the model attributes (binding parameters)
             */ $ attributes = $ this -> getAttributes ( ) ; /**
             * Add "snap_" prefix to the snapshot in order to not get index conflict when we merge attributes and snapshot
             */ $ snapshot = array ( ) ; foreach ( $ this -> _snapshot as $ key => $ value ) { $ snapshot [ "snap_" . $ key ] = $ value ; } /**
             * Merge our binding parameters.
             * Bind the parameters to the query and return the result.
             */ return $ query -> execute ( array_merge ( $ attributes , $ snapshot ) ) ; } else { /**
             * Retrieve a query from the query builder
             */ $ query = $ database -> buildQuery ( $ this -> _table_name , "insert" , array ( "columns" => $ this -> _columns ) ) ; /**
             * Create an array with the model attributes (binding parameters)
             */ $ attributes = $ this -> getAttributes ( ) ; /**
             * Bind the parameters and return the result
             */ return $ query -> execute ( $ attributes ) ; } }
Inserts or updates the database table
Inserts or updates the database table