public function close()
 {
     //		$this->_addTraceInfo(__FILE__, __METHOD__, __LINE__, "Executing...");
     //		session_write_close();
     //		$this->executeWrite($this->id, serialize($_SESSION));
     //		$this->_addTraceInfo(__FILE__, __METHOD__, __LINE__, "parameters = ()");
     //		$this->save();
     //		$sess_data = serialize($_SESSION);
     $return = true;
     //        FB::info('Closing Session...');
     //        FB::log($this->isNew(), '$this->isNew()');
     if (!$this->isNew()) {
         $sess_data = session_encode();
         //			$this->_addTraceInfo(__FILE__, __METHOD__, __LINE__, "\$sess_data = $sess_data", self::TRACE_TYPE_DEBUG);
         $this->_logDebug("\$sess_data = {$sess_data}");
         //            FB::log($sess_data, '$sess_data');
         $sql = 'INSERT INTO ' . $this->varsTable . ' (session_id, name, value)';
         $sql .= ' VALUES (';
         $sql .= $this->id;
         $sql .= ',' . $this->dataConnection->dbString($this->dataName);
         $sql .= ',' . $this->dataConnection->dbString($sess_data);
         $sql .= ')';
         $sql .= ' ON DUPLICATE KEY UPDATE';
         $sql .= ' value=' . $this->dataConnection->dbString($sess_data);
         //				$this->_addTraceInfo(__FILE__, __METHOD__, __LINE__, $sql, self::TRACE_TYPE_DEBUG);
         //                FB::log($sql);
         $return = $this->dataConnection->execute($sql);
     }
     return $return;
 }
 /**
  * Dynamic Get Function Override
  *
  * @param $name
  *   A string containing the name of the property to get.
  * @return
  *   Value of the property.
  */
 public function __get($name)
 {
     switch ($name) {
         case 'insertID':
             $return = mysql_insert_id();
             break;
         default:
             $return = parent::__get($name);
     }
     return $return;
 }
 /**
  * Dynamic Get Function Override
  *
  * @param $name
  *   A string containing the name of the property to get.
  * @return
  *   Value of the property.
  */
 public function __get($name)
 {
     switch ($name) {
         case 'connection':
             $return = $this->_getConnection();
             break;
         case 'insertID':
             $return = mysqli_insert_id();
             break;
         default:
             $return = parent::__get($name);
     }
     return $return;
 }
 /**
  * @param anvilDataConnectionAbstract $dataConnection
  *
  * @return DateTime|float|int|null|string
  */
 public function toSave($dataConnection)
 {
     $return = '';
     switch ($this->fieldType) {
         case self::DATA_TYPE_BOOLEAN:
             $return = $dataConnection->dbBoolean($this->_value);
             break;
         case self::DATA_TYPE_DATE:
             $value = isset($this->_value) ? $this->_value : ($this->allowNull ? null : $this->defaultValue);
             $return = $value;
             if (!is_null($value)) {
                 $value = new DateTime($value, new DateTimeZone('UTC'));
                 $return = $value->format($dataConnection->dateFormat);
                 $return = $dataConnection->dbDate($return);
             }
             break;
         case self::DATA_TYPE_DTS:
             $value = !empty($this->_value) ? $this->_value : ($this->allowNull ? null : $this->defaultValue);
             $return = $value;
             if (!is_null($value)) {
                 $value = new DateTime($value, new DateTimeZone('UTC'));
                 $return = $value->format($dataConnection->dtsFormat);
                 $return = $dataConnection->dbDTS($return);
             }
             break;
         case self::DATA_TYPE_PHONE:
             $value = '';
             if (isset($this->_value)) {
                 $pattern = '/[^0-9]*/';
                 $value = preg_replace($pattern, '', $this->_value);
             }
             $return = $value != '' ? $dataConnection->dbString($value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $dataConnection->dbString($this->defaultValue) : $dataConnection->dbString('')));
             if ($return == '') {
                 $return = null;
             }
             break;
         case self::DATA_TYPE_STRING:
             $return = isset($this->_value) ? $dataConnection->dbString($this->_value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $dataConnection->dbString($this->defaultValue) : $dataConnection->dbString('')));
             if ($return == '') {
                 $return = null;
             }
             break;
         case self::DATA_TYPE_ADD_DTS:
             $return = 'NOW()';
             break;
         case self::DATA_TYPE_DECIMAL:
         case self::DATA_TYPE_FLOAT:
             $return = isset($this->_value) ? floatval($this->_value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $this->defaultValue : 0));
             break;
         case self::DATA_TYPE_NUMBER:
         default:
             $return = isset($this->_value) ? intval($this->_value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $this->defaultValue : 0));
             break;
     }
     if (is_null($return)) {
         $return = 'null';
     }
     return $return;
 }