表名称的点号为“。”时,CodeIgniter 3 is_unique验证。

时间:2019-12-04 03:33:55

标签: php codeigniter codeigniter-3

如果我有一个名为“ dbo.Usuarios”的表,如何在is_unique验证中插入代码,我是否对Codeigniter 3有问题?问题是is_unique分隔表和带点的列。

问题出在这里:

$is_unique =  '|is_unique[dbo.Usuarios.Email]';

您怎么看,我的表名带有一个点,因此系统使用“ dbo” (如表名)和“ Usuarios” (如列名)。

完整代码如下:

$id= $this->session->userdata('user_id');
    $tablas = $this->db->query('SELECT * FROM dbo.Usuarios WHERE ID ='.$id.'');
    foreach ($tablas->result_array() as $row){
    $samemail = $row['Email'];    
    }
    if($this->input->post('email') != $samemail) {
    $is_unique =  '|is_unique[dbo.Usuarios.Email]';
    } 
    else {
   $is_unique =  '';
    }    

    $this->form_validation->set_rules('emailf', 'Email', 'trim|required|valid_email|max_length[20]'.$is_unique);
    if ($this->form_validation->run() == FALSE)
    {
    $this->session->set_flashdata('emailunico', 'El Email ingresado ya esta asociado a otra cuenta.');
    redirect('escritorio');  
    }
    else {
    #othercode
    }

1 个答案:

答案 0 :(得分:0)

尝试像这样修改db_owner规则:

is_unique