2012-03-04 8 views
0

Update:CodeIgniter: Ошибка базы данных «где»

Ниже ответ фиксированный моей ошибки дб, но я не получаю никаких сообщений о проверке успеха или ошибки, почему?

Вид:

<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'); 
    } 

Confirm Функция:

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

ответ

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

Спасибо, я обновил свой вопрос. –

+0

Вы должны задать другой вопрос. – slypete

Смежные вопросы