CodeIgniter: set_value () или post () – что быстрее и что лучше всего хранить данные в базе данных

Справочная информация Использование Codeigniter с form_helper и form_validation для обработки некоторой формы. Форма успешно прошла проверку в controller .

Теперь нам нужно поместить эти данные в базу данных, используя класс model .

Предположения

Предположим, что наша форма имеет несколько входных элементов (например,> 20).

Вопрос: Какой из следующих фрагментов кода будет более эффективным? Both snippets are obviously inside the controller method to which the form submits data.

Фрагмент кода 1

 if ($this->form_validation->run()) { // validation successful, now collect the values in a variable to pass it to the model. $form_data['field1'] = $this->form_validation->set_value('field1'); $form_data['field2'] = $this->form_validation->set_value('field2'); // AND SO ON $form_data['fieldN'] = $this->form_validation->set_value('fieldN'); // Now put this data into database. $this->corresponding_model->write_to_db($form_data); } 

Фрагмент кода 2

 if ($this->form_validation->run()) { // validation successful, now collect the values in a variable to pass it to the model. $form_data['field1'] = $this->input->post('field1'); $form_data['field2'] = $this->input->post('field2'); // AND SO ON $form_data['fieldN'] = $this->input->post('fieldN'); // Now put this data into database. $this->corresponding_model->write_to_db($form_data); } 

Поэтому, по сути, я задаю вопрос: что лучше получить данные сообщения для какого-либо произвольного элемента формы? $this->input->post или $this->form_validation->set_value() ?

PS: Если мы посмотрим на функции set_value() и post() в коде (см. Ниже), очевидно, что set_value() будет быстрее, поскольку post() проходить через весь $_POST . Так что в некотором смысле это также о том, что такое лучшая практика?

Метод Form_validation.php, set_value ()

 public function set_value($field = '', $default = '') { if ( ! isset($this->_field_data[$field])) { return $default; } // If the data is an array output them one at a time. // Eg: form_input('name[]', set_value('name[]'); if (is_array($this->_field_data[$field]['postdata'])) { return array_shift($this->_field_data[$field]['postdata']); } return $this->_field_data[$field]['postdata']; } 

Метод Input.php, post ()

 function post($index = NULL, $xss_clean = FALSE) { // Check if a field has been provided if ($index === NULL AND ! empty($_POST)) { $post = array(); // Loop through the full _POST array and return it foreach (array_keys($_POST) as $key) { $post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean); } return $post; } return $this->_fetch_from_array($_POST, $index, $xss_clean); } 

Solutions Collecting From Web of "CodeIgniter: set_value () или post () – что быстрее и что лучше всего хранить данные в базе данных"