<?php /** * TMP CLASS * @package Ecrosio * @author Dominik Zawadzki */ /** * Klasa TMP * * do przechowywania tymczasowych danych w bazie * @package Ecrosio * @author Dominik Zawadzki * @copyright 2013 GNU GENERAL PUBLIC LICENSE */ class tmp { /** * Uchwyt do bazy ecrosio * @access private * @var db */ private $db; /** * nazwa modulu * @access private * @var string */ private $module; public function __construct($db,$name) { $this->db = $db; $this->module = $name; } /** * Funkcja dodajaca wartosc do bazy * * Jesli parametr name wystepuje juz w bazie funkcja doda wartosc ponownie ale ze zmieniona nazwa. Funkcja maksymalnie 50 razy moze zmieniac nazwe. * * @access public * @param string name Nazwa klucza * @param string value Wartosc klucza * @param date termin Data po ktorej zostanie klucz usuniety (jesli nie podano system skasuje wg. wlasnego uznania) format rrrr-mm-dd * @return bool|string true w przypadku powodzenia, false w przybadku bledu zapisu lub nazwy lub String z nazwa zmieniona klucza, gdy funkcja bedzie musiala zmienic nazwe klucza */ public function add($name,$value,$termin='',$alt=false) { $alternatywa = ''; if($this->select($name) == TRUE) { //istnieje juz klucz o podanej nazwie $counter++; if($counter > 50) { //ochrona stosu return false; } $alternatywa = $name.$counter; $odp = $this->add($alternatywa,$value,$termin,true); if($odp !== FALSE) return $odp; }else{ $add = $this->db->prepare("INSERT INTO tmp VALUES ('',:file,:name,:value,now(),:termin)"); $add->bindValue(':file',$this->module); $add->bindValue(':name',$name); $add->bindValue(':value',$value); $add->bindValue(':termin',$termin); $response = $add->execute(); if($alt) return $name; if($response == 1) return true; else return false; } } /** * Funkcja zwracajaca wartosc klucza lub zwracajaca tablice ze wszystkimi kluczami danego modulu * * W przypadku braku podania nazwy klucza, funkcja zwroci wszystkie klucze danego modulu * * @access public * @param string $name Nazwa klucza (nieobowiazkowy) * @return Bool|String|Array Zwroci false w przypadu bledu, string gdy podano nazwe klucza i znaleziono wartosc, Array w przypadku gdy nie podano nazwy klucza a funkcja znalazla wszystkie rekordy kluczy danego modulu */ public function select($name='') { if($name != '') { $select = $this->db->prepare("SELECT value FROM tmp WHERE ( file=:file AND name=:name)"); $select->bindValue(':name',$name); $select->bindValue(':file',$this->module); $response = $select->execute(); $r = $select->fetchAll(); return $r[0]['value']; }else{ $select = $this->db->prepare("SELECT name, value FROM tmp WHERE file=:file"); $select->bindValue(':file',$this->module); $response = $select->execute(); $r = $select->fetchAll(); return $r; } } /** * Funkcja zmieniajaca wartosc klucza w bazie * * Zmienia wartosc na nowa ($value) dla klucza $name * * @access public * @param string name Nazwa klucza * @param string value Wartosc klucza * @return bool True w przypadku sukcesu, False w przypadku bledu */ public function update($name,$value) { $update = $this->db->prepare("UPDATE tmp SET value=:value WHERE ( file=:file AND name=:name)"); $update->bindValue(':name',$name); $update->bindValue(':file',$this->module); $update->bindValue(':value',$value); $response = $update->execute(); if($response == 0) return false; else return true; } /** * Funkcja usuwajaca klucz * * Usuwa klucz wskazany w parametrze * * @access public * @param string name Nazwa klucza * @return bool True w przypadku sukcesu, False w przypadku bledu */ public function delete($name) { $delete = $this->db->prepare("DELETE FROM tmp WHERE ( file=:file AND name=:name)"); $delete->bindValue(':name',$name); $delete->bindValue(':file',$this->module); $response = $delete->execute(); if($response == 0) return false; else return true; } /** * Funkcja usuwajaca wszystkie klucze danego modulu * * @access public * @return bool True w przypadku sukcesu, False w przypadku bledu */ public function clear() { $clear = $this->db->prepare("DELETE FROM tmp WHERE file=:file"); $clear->bindValue(':file',$this->module); $response = $clear->execute(); if($response == 0) return false; else return true; } } ?>
czyżby na forum brakowało specjalistów z programowania w php?