2012-06-06 52 views
2

我是新的Codeignitor,我嘗試了表單驗證。發生數據庫錯誤錯誤代碼:1146 codeignitor

這是我查看代碼:

<?php echo validation_errors(); ?> 
      <?php echo form_open('enquiry'); ?> 
      <table width="580" border="0" cellspacing="0" cellpadding="5"> 

      <tr> 
       <td height="30" align="right" valign="middle" class="normal-text-style"> *Full Name:<br /></td> 
       <td height="30" align="left" valign="middle" class="normal-style"><input type="text" name="name" value="<?php echo set_value('name'); ?>" class="textbox-style01" /></td> 
      </tr> 
      <tr> 
       <td height="30" align="right" valign="middle" class="normal-text-style"> *Company: <span id="mndCompany"> </span><br /></td> 
       <td height="30" align="left" valign="middle" class="normal-style"><input type="text" name="company" value="<?php echo set_value('company'); ?>" class="textbox-style01" /></td> 
      </tr> 
      <tr> 
       <td height="30" align="right" valign="middle" class="normal-text-style"> *E-mail:</td> 
       <td height="30" align="left" valign="middle" class="normal-style"><input type="text" name="email" value="<?php echo set_value('email'); ?>" class="textbox-style01" /></td> 
      </tr> 
      <tr> 
       <td height="30" align="right" valign="middle" class="normal-text-style"> *Phone: <br /></td> 
       <td height="30" align="left" valign="middle" class="normal-style"><input type="text" name="phone" value="<?php echo set_value('phone'); ?>" class="textbox-style01" /></td> 
      </tr> 
      <tr> 
       <td height="30" align="right" valign="middle" class="normal-text-style"> *Fax: <br /></td> 
       <td height="30" align="left" valign="middle" class="normal-style"><input type="text" name="fax" value="<?php echo set_value('comments'); ?>" class="textbox-style01" /></td> 
      </tr> 
      <tr> 
       <td width="179" height="30" rowspan="2" align="right" valign="top" class="normal-text-style"> *Comments: <br /></td> 
       <td width="421" height="12" align="left" valign="middle" class="normal-style"><textarea name="comments" class="msgebox-style01"><?php echo set_value('comments'); ?></textarea></td> 
      </tr> 
      <tr> 
       <td height="50" align="left" valign="top" class="normal-style"><input type="image" name="submit" src=" <?php echo base_url(); ?>/public/images/submit01.png" alt="submit" /></td> 
      </tr> 
      </table> 
      </form> 

這是我的控制器

function index() 
    { 
     $this->form_validation->set_rules('name', 'Name', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('company', 'Company', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]'); 
     $this->form_validation->set_rules('phone', 'phone', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('fax', 'fax', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('comments', 'comments', 'trim|required|xss_clean'); 


     $data['header_menu']=$this->load->view('header_menu', '', TRUE); 
     $this->load->view('inner_header',$data); 
     $data['left_menu']=$this->load->view('left_menu', '', TRUE); 

     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('enquiry',$data); 
     } 

     else 
     { 
      $this->load->view('enquiry/formsucess',$data); 
     }  
     $this->load->view('footer'); 
     //$this->load->view('enquiry',$data); 


    } 
    function formsucess() 
    { 


     $name = $this->input->post('name'); 
     $company = $this->input->post('company'); 
     $email = $this->input->post('email'); 
     $phone = $this->input->post('phone'); 
     $fax = $this->input->post('fax'); 
     $comments = $this->input->post('comments'); 
     $this->db->query("INSERT INTO `st_enquiry` 
     (name, company,email,phone,fax,comments,status,created_on) 
     VALUES 
     ('$name','$company','$email','$phone','$fax','$comments','1',now())"); 

     $data['header_menu']=$this->load->view('header_menu', '', TRUE); 
     $this->load->view('inner_header',$data); 
     $data['left_menu']=$this->load->view('left_menu', '', TRUE); 
     $this->load->view('media',$data); 
     $this->load->view('footer'); 


    } 

提交我得到了一個錯誤,如表格後:

A Database Error Occurred 

Error Number: 1146 

Table 'table.users' doesn't exist 

請幫我謝謝提前。

+0

表「table.users」不存在 – Ula

+2

解決了笨這個問題我得到的解決方案,如果我們從電子郵件驗證 –

+0

刪除is_unique [users.email]錯誤本身是安靜的描述,用戶表不存在數據庫檢查您的拼寫它可能是用戶表或其他東西 –

回答

2

checkout this link

這裏

$data = array(
    'title' => 'My title' , // column_name => value 
    'name' => 'My Name' , 
    'date' => 'My date' 
); 

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

必須在任何條件下工作。

2
$this->form_validation->set_rules('email','Email','required|valid_email|is_unique[users.email]'); 

這裏會有一些變化
is_unique [users.email]
01.here用戶意味着你的表名
02.電子郵件意味着電子郵件列在表格中。

所以這將是

$this->form_validation->set_rules('email','Email','required|valid_email| 
is_unique[table name.email column in your table]'); 
+0

請編輯以正確格式化您的答案。編輯器中有提示,現在它是不可讀的。 – Xan

-2

在型號一樣創建一個函數:

$this->db->insert($this->table_name,$db_data); 
return $this->db->insert_id(); 

,並從控制器發送數據到模型

0

數據庫出錯

錯誤號:1146

表「table.users」不存在

我通過在phpMyAdmin 改變表的名稱我希望這可以幫助你