我将数据从html表单提交到代码点火器PHP后端,空值将以零形式提交到数据库。是否有任何方法可以防止这种情况发生(如果表单字段为空,则保留数据库字段为空?)
查看
<?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'); ?>
控制器
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');
}
}
模型
function add_all(){
$v_membername = $this->input->post('f_membername');
$data = array(
'member_name' => $v_membername
);
$this->db->insert('members', $data);
}
MySQL中大多数字段的字段类型为tinytext,默认值为"NONE"
您的空表单输入字段不是NULL,而是空字符串",因此如果字段类型为INT,它们将转换为0。要插入NULL值,只需在模型/控制器中将"替换为NULL值。
我认为数据库中的字段类型是INT
。如果在INT
字段中插入null
数据,它将被转换为0
(零)。
您的任何表单验证是否运行substr()的任何用法?即:
substr(trim('SOME_FORM_VALUE'),0,7)
我也遇到了类似的问题,这肯定是因为substr()返回FALSE或0。