From 70889fde2ffa8c747b0a11d2712c4642b6c19b83 Mon Sep 17 00:00:00 2001 From: Urban Müller Date: Mon, 21 May 2012 16:23:10 +0000 Subject: add store(), fix comments --- it_dbi.class | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'it_dbi.class') 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() */ @@ -682,6 +682,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) -- cgit v1.2.3