首页 > 解决方案 > 错误号:1054 '字段列表'中的未知列 'sampledata'

问题描述

我在 codeigniter 中有一个项目,我通过表单获取一些数据。以及我使用过 phpmyadmin 的数据库。我想我已经编写了所有正确的代码,但是我的网页中有数据库错误,很难找到。

因为有类似的问题,但他们并没有解决我的问题。

user.php(控制器)


    public function website()
    {
        $this->load->library('form_validation');

        if($this->form_validation->run('website_validation'))
        {
           $post = $this->input->post();
          
           $this->load->model('Uploadmodel');
           if($this->Uploadmodel->websiteinsert($post['firstname'],$post['lastname'], $post['email'],$post['whatsapp'],$post['buissness']))
           {
            echo'<script>alert("Submitted Successfully")</script>';
           }

           else
           {
            echo "not succesfully";
           }
           
          return redirect('user/viewmainoffer');
        }
        else
        {      
                $this->load->view('user/index');
        }
        
    }

上传model.php(模型)

 public function websiteinsert($array)
    {
        $this->db->insert('website',$array);
    }

offer.php(查看)

<?php echo form_open('user/website'); ?>
  <div class="form-row">
    <div class="form-group col-md-6">
    <label for="formGroupExampleInput">First name</label>
    <?php echo form_input(['type'=>'text','class'=>'form-control','placeholder'=>'Enter your first name','name'=>'firstname','value'=>set_value('firstname')]); ?>
    </div>
    <div class="form-group col-md-6">
    <label for="formGroupExampleInput">Last name</label>
    <?php echo form_input(['type'=>'text','class'=>'form-control','placeholder'=>'Enter your last name','name'=>'lastname','value'=>set_value('lastname')]); ?>
    </div>
  </div>
  <div class="form-group">
  <label for="inputEmail4">Email</label>
      <?php echo form_input(['type'=>'text','class'=>'form-control','placeholder'=>'Enter your email','name'=>'email','value'=>set_value('email')]); ?>
  </div>
  <div class="form-group">
    <label for="inputAddress2">Your Whatsapp number</label>
    <?php echo form_input(['type'=>'text','class'=>'form-control','placeholder'=>' your whatsapp number','name'=>'whatsapp','value'=>set_value('whatsapp')]); ?>
  </div>
  <div class="form-row">
  <label for="inputAddress2">Your business</label>
   
    <?php echo form_input(['type'=>'text','class'=>'form-control','placeholder'=>'Your Business like Blog or anything','name'=>'buissness','value'=>set_value('buisness')]); ?>
  </div>
      </div>
      <div class="modal-footer">
       
        <?php echo form_submit(['value'=>'Get your website','class'=>' btn-lg btn btn-primary btn-block','type'=>'submit']) ?>
        </form>
      </div>
    </div>
  </div>
</div>

我得到的错误

Error Number: 1054

Unknown column 'o' in 'field list'

INSERT INTO `website` (`o`) VALUES ('')

Filename: C:/xampp/htdocs/blog/system/database/DB_driver.php

Line Number: 691

谢谢

标签: codeigniter

解决方案


这里的问题是您没有为模型 Uploadmodel 提供正确的数组,该模型正在等待一个数组,而您正在发送 4 个不同的字符串。

正确的方法是发送数组,你可以这样做:

if($this->Uploadmodel->websiteinsert($post)){
  // etc.
}

或者,如果您的 $post 包含的元素多于您想要插入的元素,您也可以:

if($this->Uploadmodel->websiteinsert(array($post['firstname'],$post['lastname'], $post['email'],$post['whatsapp'],$post['buissness']))){
  //etc.
}

或用于unset($post['foo'])删除您不想插入的 $post() 元素


推荐阅读