| | |
| | | if (in_array($col, $this->table_cols)) { |
| | | switch ($mode) { |
| | | case 1: // strict |
| | | $where[] = '(' . $this->db->quoteIdentifier($col) . ' = ' . $this->db->quote($val) |
| | | $where[] = '(' . $this->db->quote_identifier($col) . ' = ' . $this->db->quote($val) |
| | | . ' OR ' . $this->db->ilike($col, $val . $AS . '%') |
| | | . ' OR ' . $this->db->ilike($col, '%' . $AS . $val . $AS . '%') |
| | | . ' OR ' . $this->db->ilike($col, '%' . $AS . $val) . ')'; |
| | |
| | | } |
| | | |
| | | foreach (array_intersect($required, $this->table_cols) as $col) { |
| | | $and_where[] = $this->db->quoteIdentifier($col).' <> '.$this->db->quote(''); |
| | | $and_where[] = $this->db->quote_identifier($col).' <> '.$this->db->quote(''); |
| | | } |
| | | |
| | | if (!empty($where)) { |
| | |
| | | } |
| | | } |
| | | |
| | | $save_data = $this->convert_save_data($save_data); |
| | | $save_data = $this->convert_save_data($save_data); |
| | | $a_insert_cols = $a_insert_values = array(); |
| | | |
| | | foreach ($save_data as $col => $value) { |
| | | $a_insert_cols[] = $this->db->quoteIdentifier($col); |
| | | $a_insert_cols[] = $this->db->quote_identifier($col); |
| | | $a_insert_values[] = $this->db->quote($value); |
| | | } |
| | | |
| | |
| | | * |
| | | * @param mixed Record identifier |
| | | * @param array Assoziative array with save data |
| | | * |
| | | * @return boolean True on success, False on error |
| | | */ |
| | | function update($id, $save_cols) |
| | | { |
| | | $updated = false; |
| | | $updated = false; |
| | | $write_sql = array(); |
| | | $record = $this->get_record($id, true); |
| | | $record = $this->get_record($id, true); |
| | | $save_cols = $this->convert_save_data($save_cols, $record); |
| | | |
| | | foreach ($save_cols as $col => $value) { |
| | | $write_sql[] = sprintf("%s=%s", $this->db->quoteIdentifier($col), $this->db->quote($value)); |
| | | $write_sql[] = sprintf("%s=%s", $this->db->quote_identifier($col), $this->db->quote($value)); |
| | | } |
| | | |
| | | if (!empty($write_sql)) { |
| | |
| | | $this->result = null; // clear current result (from get_record()) |
| | | } |
| | | |
| | | return $updated; |
| | | return $updated ? true : false; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | /** |
| | | * Remove all records from the database |
| | | * |
| | | * @param bool $with_groups Remove also groups |
| | | * |
| | | * @return int Number of removed records |
| | | */ |
| | | function delete_all() |
| | | function delete_all($with_groups = false) |
| | | { |
| | | $this->cache = null; |
| | | |
| | | $this->db->query("UPDATE ".$this->db->table_name($this->db_name). |
| | | " SET del=1, changed=".$this->db->now(). |
| | | " WHERE user_id = ?", $this->user_id); |
| | | $this->db->query("UPDATE " . $this->db->table_name($this->db_name) |
| | | . " SET del = 1, changed = " . $this->db->now() |
| | | . " WHERE user_id = ?", $this->user_id); |
| | | |
| | | return $this->db->affected_rows(); |
| | | $count = $this->db->affected_rows(); |
| | | |
| | | if ($with_groups) { |
| | | $this->db->query("UPDATE " . $this->db->table_name($this->db_groups) |
| | | . " SET del = 1, changed = " . $this->db->now() |
| | | . " WHERE user_id = ?", $this->user_id); |
| | | |
| | | $count += $this->db->affected_rows(); |
| | | } |
| | | |
| | | return $count; |
| | | } |
| | | |
| | | |
| | |
| | | function delete_group($gid) |
| | | { |
| | | // flag group record as deleted |
| | | $sql_result = $this->db->query( |
| | | "UPDATE ".$this->db->table_name($this->db_groups). |
| | | " SET del=1, changed=".$this->db->now(). |
| | | " WHERE contactgroup_id=?". |
| | | " AND user_id=?", |
| | | $this->db->query( |
| | | "UPDATE " . $this->db->table_name($this->db_groups) |
| | | . " SET del = 1, changed = " . $this->db->now() |
| | | . " WHERE contactgroup_id = ?" |
| | | . " AND user_id = ?", |
| | | $gid, $this->user_id |
| | | ); |
| | | |
| | |
| | | |
| | | return $this->db->affected_rows(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Rename a specific contact group |