diff options
Diffstat (limited to 'it_dbi.class')
-rw-r--r-- | it_dbi.class | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/it_dbi.class b/it_dbi.class index 328e63c..3ec2978 100644 --- a/it_dbi.class +++ b/it_dbi.class @@ -237,7 +237,7 @@ function _connect($p = array()) /** - * INTERNAL: construct SQL SET clause of changed values from member vars and tags array. + * INTERNAL: construct SQL SET clause of changed values from tags array. */ function _set($tags, $allfields = false) { @@ -640,10 +640,10 @@ function iterate() /** - * Insert a record into table. Values are taken from member vars and $tags. + * Insert a record into table. Values are taken $tags. * After inserting, all values are valid (record is read back). * Does not destroy internal state of last select() call - * @param $tags Additional key => value pairs (these have priority over member vars) + * @param $tags key => value pairs to set */ function insert($tags = array(), $command = "INSERT") { @@ -672,7 +672,7 @@ function insert($tags = array(), $command = "INSERT") /** * Replace a record in a table - * @param $tags Additional key => value pairs (these have priority over member vars) + * @param $tags Additional key => value pairs * Does not destroy internal state of last select() call * @see insert() */ @@ -683,6 +683,16 @@ function replace($tags = array()) /** + * Update a record (efficiently) or create it if missing + * @param $tags key => value pairs to set + */ +function store($tags = array()) +{ + return $tags[$this->_p['keyfield']] && $this->read($tags[$this->_p['keyfield']]) ? $this->update($tags) : $this->replace($tags); +} + + +/** * Update current record or a number of records given by where condition * @param $tags key => value pairs (these have priority over changes in member vars) * @param $where condition to select records to be modified (if not current record) |