/** * Initialization tasks. * * @throws Horde_Alarm_Exception */ public function initialize() { /* Handle any database specific initialization code to run. */ switch ($this->_db->adapterName()) { case 'PDO_Oci': $query = "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'"; $this->_db->select($query); break; case 'PDO_PostgreSQL': $query = "SET datestyle TO 'iso'"; $this->_db->select($query); break; } }
/** * Create table for submiting data. * * @return boolean True on success. * @throws Ulaform_Exception */ protected function _createDataTable($form_params, $fields) { /* Generate SQL query. */ $columns = array(); foreach ($fields as $field) { switch ($field['field_type']) { case 'file': case 'image': // TODO: Use Horde_SQL switch (Horde_String::lower($this->_db->adapterName())) { case 'pgsql': $columns[] = $field['field_name'] . ' TEXT'; break; case 'mysql': case 'mysqli': $columns[] = $field['field_name'] . ' MEDIUMBLOB'; break; default: $columns[] = $field['field_name'] . ' BLOB'; break; } break; case 'address': case 'countedtext': case 'description': case 'html': case 'longtext': case 'set': $columns[] = $field['field_name'] . ' TEXT'; break; default: $columns[] = $field['field_name'] . ' VARCHAR(255)'; break; } } $sql = sprintf('CREATE TABLE %s (%s)', $form_params['table'], implode(', ', $columns)); /* Create table. */ try { $this->_db->execute($sql); } catch (Horde_Db_Exception $e) { throw new Ulaform_Exception($e); } return true; }