/** * Save a record on given table, updating it id the "id" value is set (as key or object property) or inserting it * if "id" is not set. Accepts objects or associative arrays as data. * * Returns "false" is an error occurred or the saved data re-read from the database in given format. * * @global wpdb $wpdb * @param type $table * @param type $data */ function save($table, $data, $return_format = OBJECT) { global $wpdb; if (is_object($data)) { $data = (array) $data; } if (isset($data['id'])) { $id = $data['id']; unset($data['id']); $r = $wpdb->update($table, $data, array('id' => $id)); if ($r === false) { $this->logger->fatal($wpdb->last_error); die('Database error.'); } //$this->logger->debug('save: ' . $wpdb->last_query); } else { $r = $wpdb->insert($table, $data); if ($r === false) { $this->logger->fatal($wpdb->last_error); die('Database error.'); } $id = $wpdb->insert_id; } // if ($wpdb->last_error) { // $this->logger->error('save: ' . $wpdb->last_error); // return false; // } return $this->get_single($table, $id, $return_format); }