6 Августа 2012 16:32

Сохранение переменных в MySQL

Как можно хранить настройки, а именно значения переменных в MySQL

$Settings = new SCID_KC_Settings () ;

GetListVariables // Запрос всех переменных
DeleteVariable // Удаление переменной
UpdateVariable // Обновление значения переменной
AddVariable // Добавление переменной
GetListVariablesModules // Запрос переменных модуля (группы)
GetVariableModules // Запрос переменной модуля

все возвращается в CDBResult


Код
 <?
   class SCID_KC_Settings {
      private $table = '' ;
      private $user = '' ;
      private $db = '' ;
      private $application = '' ;
      var $last_error = '' ;
      
      function SCID_KC_Settings () {
         global $USER, $DB, $APPLICATION ;
         $this->user = &$USER ;
         $this->db = &$DB ;
         $this->application = &$APPLICATION ;
      }
      // Получить список переменных
      public function GetListVariables ( ) {
         $Sql = "SELECT * FROM `scid_kiosk_collector_settings`" ;
         return $this->db->Query ( $Sql ) ;
      }
      // Удаление переменной
      public function DeleteVariable ( $Modules, $Key ) {
         $rsVariable = $this->GetVariableModules ( $Modules, $Key ) ;
         $arVariable = $rsVariable->Fetch() ;
         $Sql = "DELETE FROM `scid_kiosk_collector_settings` WHERE ID=".$arVariable[ID]." LIMIT 1";
         $this->db->Query ($Sql) ;
         if ( strlen($this->db->LAST_ERROR) > 0 ) {
            $this->last_error = $this->db->LAST_ERROR;
            return false;
         } else
            return true;
      }
      // Обновление модуля
      public function UpdateVariable ( $Modules, $Key, $Value ) {
         $rsVariable = $this->GetVariableModules ( $Modules, $Key ) ;
         if ( $rsVariable->SelectedRowsCount() == 1 ) {
            $arVariable = $rsVariable->Fetch () ;
            $Sql = "UPDATE `scid_kiosk_collector_settings` SET `ID_VALUES` = '".$Value."' WHERE ID=".$arVariable[ID]." LIMIT 1";
            $this->db->Query($Sql);
            if(strlen($this->db->LAST_ERROR) > 0) {
               $this->last_error = $this->db->LAST_ERROR;
               return false;
            } else
               return true;
         } else
            return false ;
      }
      // Добавление новой переменной
      public function AddVariable ( $Modules, $Key, $Value ) {
         $rsVariable = $this->GetVariableModules ( $Modules, $Key ) ;
         if ( $rsVariable->SelectedRowsCount() == 0 ) {
         $Sql = "INSERT INTO `scid_kiosk_collector_settings` (`MODULES`, `ID_KEY`, `ID_VALUES`) VALUES ('".$Modules."', '".$Key."', '".$Value."')" ;
            $Res = $this->db->Query($Sql);
            $Id = $this->db->LastID();
            if($Id > 0) {
               return $Id;
            } else {
               $this->LAST_ERROR = $this->db->LAST_ERROR;
               return false;
            }
         } else
            return false ;
      }
      // Получить список переменных модуля
      public function GetListVariablesModules ( $Modules ) {
         $Sql = "SELECT * FROM `scid_kiosk_collector_settings` WHERE MODULES = '".$Modules."'" ;
         return $this->db->Query ( $Sql ) ;
      }
      // Получить переменую модуля
      public function GetVariableModules ( $Modules, $Key ) {
         $Sql = "SELECT * FROM `scid_kiosk_collector_settings` WHERE MODULES = '".$Modules."' AND ID_KEY = '".$Key."'" ;
         return $this->db->Query ( $Sql ) ;
      }
   }

?>


// Добавить таблицу


CREATE TABLE IF NOT EXISTS `scid_kiosk_collector_settings` (
`ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`MODULES` VARCHAR(32) NOT NULL,
`ID_KEY` VARCHAR(32) NOT NULL,
`ID_VALUES` VARCHAR(1024) NOT NULL
) ENGINE = InnoDB ;


// Удалить таблицу
DROP TABLE IF EXISTS `scid_kiosk_collector_settings`;
Просмотров:4230 0   Комментариев:22
'bitrix:asd.share.buttons' is not a component


IT-технологии
WEB сервера, настройка и конфигурирование, интересные решения
Программирование
WEB программирование, WEB дизайн, Кросс-браузерная верстка
Технические науки
Физика, Математика, Химия и все-то, что лежит в основе наших знаний