【问题标题】:Can't INSERT data into mysql from form using php-(codeigniter)无法使用 php-(codeigniter) 从表单将数据插入 mysql
【发布时间】:2016-04-20 20:53:07
【问题描述】:

我是 Codeigniter 的初学者。如何使用 codeigniter 将表单值存储在 mysql 中,任何人都可以帮助我。我已经尝试在这里做同样的事情 点击这里。但是当我运行并填写表格时,我收到错误 404。在此先感谢。这是代码:

mysql代码:

   CREATE TABLE `meal` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `unit_price` decimal(50,0) NOT NULL,
  `description` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

型号:

<?php
class insert_model extends CI_Model{
function __construct() {
parent::__construct();
}
function form_insert($data){
// Inserting in Table(meal) of Database(cl36-smart)
$this->db->insert('meal', $data);
 }
 }
?>

查看:

<!DOCTYPE html>
   <html>
   <head>  


<title>Add Meal</title>
</head>
<body>

<div id="container">

<?php echo form_open('site'); ?>
   <h2> add meal by filling the brackets  bellow  </h2>
   <?php if (isset($message)) { ?>
   <CENTER><h3 style="color:green;">Data inserted successfully</h3></CENTER>   <br>
<?php echo form_label('Meal Name:');?><br/> 
<?php echo form_input(array('id' => 'name', 'name' => 'name'));  ?><br>
<?php echo form_label('Unit Price:');?><br/>
<?php echo form_input(array('id' => 'unit_price', 'name' => 'unit_price'));    ?><br/>    
<?php echo form_label('Description:');?><br/>
<?php echo form_input(array('id' => 'description', 'name' => 'description')); ?><br/>
<?php echo form_submit(array('id' => 'submit', 'value' => 'Add')); ?><br/>
<?php echo form_close(); ?>


</div>


</body>


</html>

控制器:

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

class Site extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('insert_model');
$this->load->helper( array( 'form' ) );

}

   public function index(){


    $this->load->view('view_form');
   $data = array(
 'name' => $this->input->post('name'),
 'unit_price' => $this->input->post('unit_price'),
 'description' => $this->input->post('description')    
  );
   $this->load->view('view_form', $data);

   $this->insert_model->form_insert($data);
   $data['message'] = 'Data Inserted Successfully';



   }

 }

【问题讨论】:

  • 使类名 ucfirst 即Insert_model

标签: php database codeigniter


【解决方案1】:

几乎一切都很好,只有一些句子的位置在你的控制器中是错误的

来自

 public function index(){
    $this->load->view('view_form');

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

   $this->load->view('view_form', $data);

   $this->insert_model->form_insert($data);
   $data['message'] = 'Data Inserted Successfully';
 }

到 公共函数索引(){ $this->load->view('view_form');

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

   $this->insert_model->form_insert($data);
   $data['message'] = 'Data Inserted Successfully';    

   $this->load->view('view_form', $data);
 }

如果没有,你需要在最后调用视图,模型永远不会被调用。

【讨论】:

  • 我收到此错误:错误编号:1048 列“名称”不能为空 INSERT INTO mealnameunit_pricedescription)值(NULL,NULL,NULL)文件名:C:/xampp/htdocs/ci/system/database/DB_driver.php 行号:691 @elddenmedio
  • @ShathaKt 嗨,这个错误是因为表单中的输入在受控中调用了不同的名称,你可以用检查元素检查吗?
  • 嗨,我无法理解为什么你有两次调用视图,一次开始索引方法,第二次结束,你只有一个,第二个。试试看
【解决方案2】:

试试这个:

如果你设置了mysql,首先进入这个文件中的application->config->database.php 然后删除它并使用**mysqli**

在您的模型构造函数中,您必须添加 $this->load->database();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多