public function save() { // $this->_addTraceInfo(__FILE__, __METHOD__, __LINE__, "Executing..."); if ($this->id == 0) { // $this->_addTraceInfo(__FILE__, __METHOD__, __LINE__, "Saving New Session..."); $this->_logVerbose('Saving New Session...'); //echo('*** save (INSERT) ***'); $this->_new = true; $sql = 'INSERT INTO ' . $this->sessionsTable . ' (session_dts, ascii_session_id, user_ip, user_id, last_visit_dts, user_agent, request_uri, referrer, is_cookie_detected)'; $sql .= ' VALUES ('; // $sql .= $this->devData->dbDTS($this->thisVisitDTS); $sql .= 'Now()'; $sql .= ',' . $this->dataConnection->dbString($this->phpSessionID); $sql .= ',' . $this->dataConnection->dbString($this->userIP); $sql .= ',' . $this->userID; // $sql .= ',' . $this->dataConnection->dbDTS($this->thisVisitDTS); $sql .= ',Now()'; $sql .= ',' . $this->dataConnection->dbString($this->userAgent); if ($this->_isConsole) { $sql .= ',' . $this->dataConnection->dbString('** Console **'); } else { $sql .= ',' . $this->dataConnection->dbString('http://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]); } if (isset($_SERVER["HTTP_REFERER"])) { //$this->_strReferrer = $_SERVER["HTTP_REFERER"]; $sql .= ',' . $this->dataConnection->dbString($_SERVER["HTTP_REFERER"]); } else { $sql .= ',null'; } $sql .= ',' . $this->dataConnection->dbBoolean($this->_cookieDetected); // $sql .= ',-1'; $sql .= ')'; } else { // $this->_addTraceInfo(__FILE__, __METHOD__, __LINE__, "Saving Existing Session..."); $this->_logVerbose('Saving Existing Session...'); //$this->_isNew = false; $sql = 'UPDATE ' . $this->sessionsTable . ' SET'; //$sql .= 'ascii_session_id=' . $this->_devData->dbString($this->_phpSessionID); //$sql .= ', user_ip=' . $this->_devData->dbString($this->_userIP); $sql .= ' user_id=' . intval($this->userID); //$sql .= ', user_agent=' . $this->_devData->dbString($this->_userAgent); // $sql .= ', last_visit_dts=' . $this->devData->dbDTS($this->thisVisitDTS); $sql .= ', last_visit_dts=Now()'; $sql .= ', is_cookie_detected=' . $this->dataConnection->dbBoolean($this->_cookieDetected); // $sql .= ', is_cookie_detected=-1'; $sql .= ' WHERE session_id=' . $this->id; } $isOk = $this->dataConnection->execute($sql); if ($this->id == 0) { $sql = "SELECT LAST_INSERT_ID() AS id, Now() AS nowDTS;"; $objRS = $this->dataConnection->execute($sql); if ($objRS->read()) { $this->id = $objRS->data('id'); $this->lastVisitDTS = $objRS->data('nowDTS'); $this->thisVisitDTS = $objRS->data('nowDTS'); } $objRS->close(); } return $isOk; }
/** * @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; }