conn = $conn; $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; if(!pg_query($conn,$qry)) { $this->errormsg = "Encoding konnte nicht gesetzt werden"; return false; } if($telefonnummer_id != null) $this->load($telefonnummer_id); } /** * Laedt den Datensatz mit der ID die uebergeben wurde * @param $telefonnummer_id ID des zu ladenden Datensatzes * @return true wenn ok, false im Fehlerfall */ function load($telefonnummer_id) { //Gueltigkeit von telefonnummer_id pruefen if(!is_numeric($telefonnummer_id) || $telefonnummer_id == '') { $this->errormsg = 'telefonnummer_id muss eine Zahl sein'; return false; } $qry = "SELECT * FROM telefonnummer WHERE telefonnummer_pk=$telefonnummer_id"; if(!$res = pg_query($this->conn,$qry)) { $this->errormsg = 'Fehler beim Laden des Datensatzes'; return false; } if($row = pg_fetch_object($res)) { $this->telefonnummer_id = $row->telefonnummer_pk; $this->name = $row->name; $this->nummer = $row->nummer; $this->person_id = $row->person_fk; $this->typ = $row->typ; $this->updateamum = $row->creationdate; $this->updatevon = $row->creationuser; } else { $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden'; return false; } return true; } /** * Laedt alle Telefonnummern einer Person * @param $person_id Person zu der die Telefonnummern gesucht werden sollen * @return true wenn ok, false im Fehlerfall */ function load_pers($person_id) { //Gueltigkeit von person_id pruefen if(!is_numeric($person_id) || $person_id == '') { $this->errormsg = 'person_id muss eine gueltige Zahl sein'; return false; } $qry = "SELECT * from telefonnummer where person_fk=$person_id"; if(!$res = pg_query($this->conn, $qry)) { $this->errormsg = 'Der Datensatz konnte nicht geladen werden'; return false; } while($row = pg_fetch_object($res)) { $tel_obj = new telefonnummer($this->conn); $tel_obj->telefonnummer_id = $row->telefonnummer_pk; $tel_obj->name = $row->name; $tel_obj->nummer = $row->nummer; $tel_obj->person_id = $row->person_fk; $tel_obj->typ = $row->typ; $tel_obj->updateamum = $row->creationdate; $tel_obj->updatevon = $row->creationuser; $this->result[] = $tel_obj; } return true; } /** * Liefert alle Telefonnummern * @return true wenn ok, false im Fehlerfall */ function getAll() { /* Benoetigt zu viel Speicher $qry = "SELECT * FROM telefonnummer;"; if(!$res = pg_query($this->conn, $qry)) { $this->errormsg = 'Fehler beim laden der Telefonnummern'; return false; } while($row = pg_fetch_object($res)) { $tel_obj = new telefonnummer($this->conn); $tel_obj->telefonnummer_id = $row->telefonnummer_pk; $tel_obj->name = $row->name; $tel_obj->nummer = $row->nummer; $tel_obj->person_id = $row->person_fk; $tel_obj->typ = $row->typ; $tel_obj->updateamum = $row->creationdate; $tel_obj->updatevon = $row->creationuser; $this->result[] = $tel_obj; } return true; */ return false; } /** * Prueft die gueltigkeit der Variablen * @return true wenn ok, false im Fehlerfall */ function checkvars() { //Hochkomma und HTML Tags ersetzen //$this->name = htmlentities($this->name, ENT_QUOTES); //$this->nummer = htmlentities($this->nummer, ENT_QUOTES); //Laenge pruefen $this->errormsg = 'Eine der Gesamtlaengen wurde ueberschritten'; if(strlen($this->name)>255) return false; if(strlen($this->nummer)>30) return false; //Zahlenfelder pruefen $this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen'; if(!is_numeric($this->person_id)) return false; if(!is_numeric($this->typ)) return false; $this->errormsg = ''; return true; } /** * Speichert den aktuellen Datensatz * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt * andernfalls wird der Datensatz mit der ID in $telefonnummer_id aktualisiert * @return true wenn ok, false im Fehlerfall */ function save() { //Variablen pruefen if(!$this->checkvars()) return false; if($this->new) { //Neuen Datensatz anlegen //neue ID aus der Sequence holen $qry = "SELECT nextval('telefonnummer_seq') as id;"; if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) { $this->errormsg = 'Fehler beim auslesen der Sequence'; return false; } $this->telefonnummer_id = $row->id; $qry = "INSERT INTO telefonnummer (telefonnummer_pk, person_fk, name, nummer, typ, creationdate, creationuser)". " VALUES('$this->telefonnummer_id', '$this->person_id', '$this->name', '$this->nummer', '$this->typ', now(), '$this->updatevon');"; } else { //Bestehenden Datensatz aktualisieren //Pruefen der ID if(!is_numeric($this->telefonnummer_id) || $this->telefonnummer_id == '') { $this->errormsg = 'telefonnummer_id muss eine gueltige Zahl sein'; return false; } $qry = "UPDATE telefonnummer SET person_fk='$this->person_id', name='$this->name', typ='$this->typ', nummer='$this->nummer'". " WHERE telefonnummer_pk='$this->telefonnummer_id'"; } if(pg_query($this->conn, $qry)) { //Log schreiben $sql = $qry; $qry = "SELECT nextval('log_seq') as id;"; if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) { $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; return false; } $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; if(pg_query($this->conn, $qry)) return true; else { $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; return false; } } else { $this->errormsg = 'Fehler beim Speichern der Daten'; return false; } } /** * Loescht den Datensatz mit der uebergebenen ID * @param telefonnummer_id ID des zu leoschenen Datensatzes * @return true wenn ok, false im Fehlerfall */ function delete($telefonnummer_id) { //Pruefen der ID if(!is_numeric($telefonnummer_id) || $telefonnummer_id == '') { $this->errormsg = 'telefonnummer_id muss eine gueltige Zahl sein'; return false; } //loeschen des Datensatzes $qry = "DELETE FROM telefonnummer where telefonnummer_pk='$telefonnummer_id'"; if(pg_query($this->conn, $qry)) { //Log schreiben $sql = $qry; $qry = "SELECT nextval('log_seq') as id;"; if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) { $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; return false; } $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; if(pg_query($this->conn, $qry)) return true; else { $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; return false; } } else { $this->errormsg = 'Fehler beim loeschen eines Datensatzes'; return false; } } } ?>