使用codeigniter框架将数据插入数据库不起作用

时间:2016-01-19 06:28:12

标签: php mysql codeigniter

为什么插入操作不起作用,我的数据库不接受我试图插入的数据。我使用autoload config来加载数据库和New_model类。

New_controller.php

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

class New_controller 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($id)
    {
        //$this->load->model("New_model");
        $data["posts"]=$this->New_model->database($id);

        $this->load->view("New_view",$data);
    }

    public function insert_post()
    {
            $this->New_model->create([  
            'post_title'=>'health is wealth',
            'post_description'=>'as we know health is a gift of nature we should take care of our self',
            'post_author'=>'krishna',
            'post_date'=>'2016-01-19'
            ]);
    }
}
?>

我已经使用autoload配置来加载New_model类。所有内容似乎都很好,但我的插入操作无法正常工作

New_model.php
<?php

class New_model extends CI_Model {

    public function database($id)
    {
        //$this->load->database();
        //$sql=$this->db->query("SELECT * FROM posts");

        $this->db->where("id",$id);
        $sql=$this->db->get("posts");

        $result=$sql->result_array();

        return $result;
    }
    public function create($data)
    {
        $this->db->insert("posts",$data);
    }

}
?>

2 个答案:

答案 0 :(得分:1)

试试这个

将此更改为

$this->New_model->create([  
            'post_title'=>'health is wealth',
            'post_description'=>'as we know health is a gift of nature we should take care of our self',
            'post_author'=>'krishna',
            'post_date'=>'2016-01-19'
            ]);

:此

$data = array(
        'post_title'=>'health is wealth',
        'post_description'=>'as we know health is a gift of nature we should take care of our self',
        'post_author'=>'krishna',
        'post_date'=>'2016-01-19'
    );

$this->New_model->create($data);

答案 1 :(得分:1)

要插入您必须创建数组的数据

function insert_post() {
    $datanew = array(
        'post_title' => 'health is wealth',
        'post_description' => 'as we know health is a gift of nature we should take care of our self',
        'post_author' => 'krishna',
        'post_date' => '2016-01-19'
    );
    $this->New_model->create($datanew);
}

阅读http://www.codeigniter.com/userguide2/database/queries.html