使用CodeIgniter插入到数据库

3

你好

我想在CI中使用表单插入数据,但我遇到了问题。以下是我的模型代码:

function add_form() {
    $this->load->database();
    $id = $this->input->post('id');
    $name = $this->input->post('name');
    $age = $this->input->post('age');       
    $data = array(
       'name' => $this->input->post('name'),
       'age' => $this->input->post('age'),
    );
    $this->db->insert('user',$data);
}

这是我的控制器代码

function simpleform() {
    $this->load->helper('form');
    $this->load->helper('html');
    $this->load->model('welcomedb_model');
    if( $this->input->post('submit') ) {
        $this->welcomedb_model->add_form();
    }
    $this->load->view('welcomedb_view');
}

这是我的视图代码:

<?php echo form_open('welcomedb/submit'); ?>
   <? echo $name; ?>: 
   <? echo form_input('name'); ?>
   </br>
   <? echo $age; ?>: 
   <? echo form_input('age'); ?>
   </br>
   <?php echo form_submit('submit', 'Submit'); ?>
   <?php echo form_close(); ?>

感谢您的帮助。

查看代码:<?php echo form_open('welcomedb/submit'); ?> <? echo $name; ?>: <? echo form_input('name'); ?> </br> <? echo $age; ?>: <? echo form_input('age'); ?> </br> <?php echo form_submit('submit', '提交'); ?> <?php echo form_close(); ?> - webkul
1
请重新编辑您的问题并相应地格式化代码。你接近了,但第一次尝试时错过了。另外,您的视图代码应该在那里,而不是在注释中。 - MJB
那么...问题到底是什么? - bschaeffer
问题是当我提交表单时,没有数据插入到数据库中,只有空值。 - webkul
请提供任何教程或代码来执行相同的操作。 - webkul
3个回答

10
您的表单正在提交到welcomedb/submit,但您的控制器似乎在welcomedb/simpleform...也许您需要更改它。
否则,似乎没有任何问题。

最终我找到了解决方案,应该是 <?php echo form_open('welcomedb/simpleform'); ?>。谢谢帮助。 - webkul

2

可能:

$data = array(
    'name' => $this->input->post('name'),
    'age' => $this->input->post('age'),
);

将最后一个元素(年龄)的逗号删除,如下所示:

$data = array(
    'name' => $this->input->post('name'),
    'age' => $this->input->post('age')
);

并且总是抛出错误。


这是 PHP,而不是 JS!!通常认为在最后一个数组项后添加逗号是一种良好的做法。 - Junaid Qadir Shekhanzai

1
Best way is to do these code ......
First conifg the autoload and database.
into autoload:$autoload['libraries'] = array('database'); 
              $autoload['helper'] = array('url','form','file');
Into controller

<?php
    class CDemo  extends CI_Controller
    {

        function index()
        {
            $this->load->view('VDemo');
        }
        function save()
        {
            $this->load->model('MDemo');

             if($this->input->post('submit'))
            {
                $this->MDemo->process();                
            }
            redirect('CDemo'); 
        }
    }
?>

Into Model
<?php
    class MDemo extends CI_Model
    {   
        function process()
        {
            $Id = $this->input->post('Id');
            $Name = $this->input->post('Name');
            $data = array(
                   'Id'=>$Id,
                    'Name'=>$Name                    
                    );
                    $this->db->insert('test',$data);    
            }
        }
?>

Into View
<html>
<head>
<title>DEMO</title>
</head>
<body>
    <h1>Form Biodata</h1>
    <?php
        echo form_open('CDemo/save', array('name' => 'VDemo'));    
    ?>
        <table>
            <tr>
                <td>Id :</td>
                <td><input type="text" name="Id"></input></td>
            </tr>
            <tr>
                <td>Name :</td>
                <td><input type="text" name="Name"></input></td>
            </tr>    
            <tr>
                <td><input type="submit" name="submit" value="submit"></input></td>
            </tr>        
        </table>
    <?php
        echo form_close();
    ?>
    <textarea rows="" cols="">Hello</textarea>
</body>
</html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接