2012-03-04 91 views
0

更新:笨:数据库错误“其中”

下面的答案固定我的数据库错误,但我没有得到任何成功或错误的验证消息,为什么?

查看:

<h1><?php echo $companyName; echo nbs(1);?> - <?php echo $pageTitle; ?></h1> 

    <p>Error: <?php echo validation_errors();?></p> 

我正在以下数据库错误,但我不确定为什么,因为它的两个不同的表:

Unknown column 'userActiveCode' in 'where clause' 

SELECT `coreCompanyName`, `coreContactName`, `coreContactEmail` FROM (`core`) WHERE `userActiveCode` = '85domiigJZ' 

Filename:/core_model.php 

Line: 18 

控制器:

function confirm(){ 

     $activateCode = $this->uri->segment(3); 

     if($activateCode == '') 
     { 
      $this->form_validation->set_message('userConfirmError', 'Sorry you did not have a correct Activation Code.'); 
     } 
      $userConfirmed = $this->users_model->confirm_user($activateCode); 

      if($userConfirmed){ 
       $this->form_validation->set_message('userConfirmed', 'Thanks your account is now active you may login!'); 
      }else{ 
       $this->form_validation->set_message('userRecord', 'I am sorry we do not have any details with that Activation Code'); 
      } 
      $data['companyName'] = $this->core_model->companyDetails()->coreCompanyName; 
      $data['pageTitle'] = "User Confirm"; 
      $this->load->view('frontend/assets/header', $data); 
      $this->load->view('frontend/user_confirm', $data); 
      $this->load->view('frontend/assets/footer'); 
    } 

确认功能:

function confirm_user($activateCode) 
    { 
    //Selects the userID where the given URI activateCode = ? 

     $this->db->select('userID'); 
     $this->db->from('users'); 
     $this->db->where('userActiveCode', $activateCode); 

     $result = $this->db->get(); 

     if($result->num_rows == 1) // If the above result is = 1 then update the userActive row else it will fail 
     { 
      $this->db->set('userActive', 1); 
      $this->db->where('userActiveCode', $activateCode); 

      return TRUE; 
     }else{ 
      return FALSE; 
     } 

核心型号:

function companyDetails() 
    { 
     static $details; 

     if(!$details) 
     { 
      $this->db->select('coreCompanyName, coreContactName, coreContactEmail'); 
      $details = $this->db->get('core')->first_row(); 
     } 
     return $details; 
    } 
+0

我不相信你张贴在这里的代码生成查询。您可以请发布UserModel :: confirm_user的代码吗? – slypete 2012-03-04 20:15:00

回答

2

你没完成激活用户的交易。请尝试的usermodel :: confirm_user修改下面的代码:

$this->db->set('userActive', 1); 
$this->db->where('userActiveCode', $activateCode); 

$this->db->set('userActive', 1); 
$this->db->where('userActiveCode', $activateCode); 
$this->db->update('users'); 
+0

谢谢,我更新了我的问题。 – 2012-03-04 22:14:18

+0

你应该发布另一个问题。 – slypete 2012-03-05 00:08:46