нулевые значения php воспламенителя кода отправляются в базу данных mysql в виде нулей (0) - PullRequest
2 голосов
/ 07 июня 2011

Я отправляю данные из html-формы в бэкэнд PHP воспламенителя кода, и нулевые значения отправляются в базу данных в виде нулей.Есть ли способ предотвратить это (оставить поля базы данных пустыми, если поле формы было пустым?)

VIEW

<?php echo form_open('control_form/add_all'); ?>
<label for="f_membername">Member Name<span class="red">*</span></label>
<input type="text" name="f_membername"/>
<?php echo form_submit('submit', 'Submit'); ?>

CONTROLLER

function add_all(){
    $this->form_validation->set_rules('f_membername', 'Member Name', 'required');
    if ($this->form_validation->run() == TRUE)
    {
        #Add Member to Database
        $this->Model_form->add_all();
        $this->load->view('view_inc_header');
        $this->load->view('view_form_success');
        $this->load->view('view_inc_footer');
    }
}

MODEL

function add_all(){
    $v_membername = $this->input->post('f_membername');

    $data = array(

            'member_name' => $v_membername

    );

    $this->db->insert('members', $data);
}

Тип поля в MySQL для большинства полей - tinytext, а значением по умолчанию является NONE

Ответы [ 3 ]

2 голосов
/ 08 июня 2011

Ваши пустые поля ввода формы не NULL, а пустые строки '', поэтому они конвертируются в 0, если тип поля INT.Чтобы вставить значения NULL, просто замените '' на значения NULL в модели / контроллере.

0 голосов
/ 11 февраля 2013

Использует ли какая-либо из ваших проверок формы какое-либо использование substr () ?то есть:

substr(trim('SOME_FORM_VALUE'),0,7)

У меня была похожая проблема, и это было определенно потому, что substr () возвращал FALSE или 0.

0 голосов
/ 07 июня 2011

Я думаю, что тип поля в вашей базе данных INT. Если вы вставите данные null в поле INT, они будут преобразованы в 0 (ноль).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...