conn = $conn; $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; if(!pg_query($conn,$qry)) { $this->errormsg = "Encoding konnte nicht gesetzt werden"; return false; } if($mail_id != null) $this->load($mail_id); } /** * Laedt einen Datensatz * @param mail_id ID des zu ladenden Datensatzes */ function load($mail_id) { //mail_id auf gueltigkeit pruefen if(!is_numeric($mail_id) || $mail_id == '') { $this->errormsg = 'mail_id muss eine gueltige Zahl sein'; return false; } //laden des Datensatzes $qry = "SELECT * FROM email WHERE email_pk='$mail_id';"; if(!$res = pg_query($this->conn,$qry)) { $this->errormsg = 'Fehler bei der Datenbankabfrage'; return false; } if($row=pg_fetch_object($res)) { $this->email_id = $row->email_pk; $this->person_id = $row->person_fk; $this->email = $row->email; $this->name = $row->name; $this->typ = $row->typ; $this->zustelladresse = ($row->zustelladresse=='J'?true:false); $this->updateamum = $row->creationdate; $this->updatevon = $row->creationuser; } else { $this->errormsg = 'Fehler bei der Datenbankabfrage'; return false; } return true; } /** * Laedt alle Datensaetze * @return true wenn ok, false im Fehlerfall */ function getAll() { /* Frisst zu viel Speicher und wird beendet $qry = "SELECT * FROM email;"; if(!$res = pg_query($this->conn, $qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; return false; } while($row = pg_fetch_object($res)) { $mail_obj = new email($this->conn); $mail_obj->email_id = $row->email_pk; $mail_obj->person_id = $row->person_fk; $mail_obj->email = $row->email; $mail_obj->name = $row->name; $mail_obj->typ = $row->typ; $mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false); $mail_obj->updateamum = $row->creationdate; $mail_obj->updatevon = $row->creationuser; $this->result[] = $mail_obj; } return true; */ return false; } /** * Laedt alle Datensaetze zu einer person * @param pers_id ID der Person zu der die Mails geladen werden sollen * @return true wenn ok, false im Fehlerfall */ function load_pers($pers_id) { //pers_id auf gueltigkeit pruefen if(!is_numeric($pers_id) || $pers_id == '') { $this->errormsg = 'pers_id muss eine gueltige Zahl sein'; return false; } //Datensaetze laden $qry = "SELECT * FROM email WHERE person_fk='$pers_id';"; if(!$result = pg_query($this->conn, $qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; return false; } while($row = pg_fetch_object($result)) { $mail_obj = new email($this->conn); $mail_obj->email_id = $row->email_pk; $mail_obj->person_id = $row->person_fk; $mail_obj->email = $row->email; $mail_obj->name = $row->name; $mail_obj->typ = $row->typ; $mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false); $mail_obj->updateamum = $row->creationdate; $mail_obj->updatevon = $row->creationuser; $this->result[] = $mail_obj; } return true; } /** * Loescht einen Datensatz * @param mail_id ID des zu leoschenden Datensatzes * @return true wenn ok, false im Fehlerfall */ function delete($mail_id) { //mail_id auf gueltigkeit pruefen if(!is_numeric($mail_id) || $mail_id == '') { $this->errormsg = 'mail_id muss eine gueltige Zahl sein'; return false; } $qry = "DELETE FROM email WHERE email_pk = '$mail_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'; return false; } } /** * Prueft die variablen auf gueltigkeit * @return true wenn ok, false im Fehlerfall */ function checkvars() { //Gesamtlaenge pruefen if(strlen($this->name)>255) { $this->errormsg = 'Name darf nicht mehr als 255 Zeichen lang sein'; return false; } if(strlen($this->email)>255) { $this->errormsg = 'EMail darf nicht mehr als 255 Zeichen lang sein'; return false; } //Zahlenfelder pruefen if(!is_numeric($this->person_id)) { $this->errormsg = 'Person_id muss eine gueltige Zahl sein'; return false; } if(!is_numeric($this->typ)) { $this->errormsg = 'Typ muss eine gueltige Zahl sein'; 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 $email_id aktualisiert * @return true wenn ok, false im Fehlerfall */ function save() { if(!$this->checkvars()) return false; if($this->new) { //Neuen Datensatz anlegen //Naechste ID aus Sequence holen $qry = "SELECT nextval('email_seq') as id;"; if(!$row=pg_fetch_object(pg_query($this->conn, $qry))) { $this->errormsg = 'Fehler beim auslesen der ID aus der Sequence'; return false; } $this->email_id = $row->id; $qry = "INSERT INTO email (email_pk, person_fk, name, email, typ, creationdate, creationuser, zustelladresse)". " VALUES ('$this->email_id', '$this->person_id', '$this->name', '$this->email', '$this->typ', now(),". " $this->updatevon, '".($this->zustelladresse?'J':'N')."');"; } else { //Bestehenden Datensatz aktualisieren //email_id auf gueltigkeit pruefen if(!is_numeric($this->email_id) || $this->email_id == '') { $this->errormsg = 'email_id muss eine gueltige Zahl sein'; return false; } $qry = "UPDATE email SET person_fk = '$this->person_id', name = '$this->name', email = '$this->email',". " typ = '$this->typ', zustelladresse = '".($this->zustelladresse?'J':'N')."' WHERE email_pk = '$this->email_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 des Datensatzes'; return false; } } } ?>