CodeIgniter将0而不是字符串值放到数据库中

时间:2014-05-09 09:49:53

标签: database forms codeigniter

我正在尝试使用CodeIgniter构建一个小博客,由于某种原因,我将表单数据库条目设置为0而不是字符串。我试图手动将它通过控制器,它的工作原理。表格中的问题是什么?

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class site_model extends CI_Model {

    var $title   = '';
    var $content = '';
    var $date    = '';

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }

    function get_records()
    {
        $query = $this->db->get('posts');

        return $query->result();
    }

    function add_records($data) {

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

        return;
    }

    function updata_records($data) {

        $this->db->where('postID', $id);
        $this->db->updata('posts', $data);
    }

    function delede_roe() {

        $this->db->where('postID', $this->uri->segment(3));
        $this->db->delete('posts');
    }
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

表单页面:

    <div class="grid_11">
            <h2>About</h2>
        <?php  echo form_open('site/creata'); ?>

    <label for="title"> title </label>

    <input type="text" name="title" id="title">

    <label for="content"> content </label>

    <input type="text" name="content" id="content">

    <br>

    <input type="submit" value="send">

    <?php  echo form_close(); ?>
        </div>

控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class site extends CI_Controller {

    /**
     * Index Page for this controller.
     *
     * Maps to the following URL
     *      http://example.com/index.php/welcome
     *  - or -  
     *      http://example.com/index.php/welcome/index
     *  - or -
     * Since this controller is set as the default controller in 
     * config/routes.php, it's displayed at http://example.com/
     *
     * So any other public methods not prefixed with an underscore will
     * map to /index.php/welcome/<method_name>
     * @see http://codeigniter.com/user_guide/general/urls.html
     */
    public function index()
    {
        $this->load->view('home');
    }

    function add_post() {

        $this->load->view('add_post');
    }

    function creata() {

        $data = array (
            'title' => $this->input->post('title'),
            'post' => $this->input->post('content')
        );

        $this->load->model('site_model');
        $this->site_model->add_records($data);
    }
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

1 个答案:

答案 0 :(得分:0)

您的控制器功能应如下所示:

function creata() {
    if( $this->input->post(null) ){ //enter if the form is submitted
        $data = $this->input->post(null, true); // get all the data of the post
        print_r( $data );die; // see the post data 
        $this->load->model('site_model');
        $this->site_model->add_records($data);
        $this->session->set_flashdata('msg', 'A msg to show to the user about the insertion');
        redirect('site/creata', 'refresh');
    }else{  //load the form
        $this->load->view('home');
    }
}

你形成的样子对我来说没问题。您的模型可能包含一行以查看查询。

function add_records($data) {
    $this->db->insert('posts', $data);
    $this->db->last_query(); die; //check the query it's executing.
    return;
}