gpt4 book ai didi

php - 无法使用 codeigniter 将值插入数据库

转载 作者:行者123 更新时间:2023-11-30 01:10:02 26 4
gpt4 key购买 nike

尝试使用 codeigniter 将表单值插入数据库,但没有任何反应。我的表单是 comment_form.php 就像,

<?php echo validation_errors(); ?>
<?php echo form_open('news/comment_form'); ?>

Name<input type="text" name="comment_name"></input><br />
Email<input type="text" name="comment_email"></input><br />
Comment<input type="text" name="comment_body"></input><br />
<input type="submit" name="submit" value="Comment it" ></input>

</form>

这是我的 Controller comments.php

class Comments extends CI_Controller
{

public function __construct()
{
parent::__construct();
$this->load->model('comment_model');
}

public function create_comment()
{
$this->load->helper('form');
$this->load->library('form_validation');


//$data['title'] = 'Create a news item';

$this->form_validation->set_rules('comment_name', 'comment_name', 'required');
$this->form_validation->set_rules('comment_email', 'comment_email', 'required');
$this->form_validation->set_rules('comment_body', 'comment_body', 'required');

if ($this->form_validation->run() === FALSE) {
$this->load->view('templates/header', $data);
$this->load->view('news/comment_form');
$this->load->view('templates/footer');
} else {
$this->news_model->set_comment();
$this->load->view('news/success');
}
}
}

这是我的模型comment_model.php

class Comment_model extends CI_Model
{

public function __construct()
{
$this->load->database();
}


public function set_comment()
{
//$this->load->helper('url');

//$slug = url_title($this->input->post('title'), 'dash', TRUE);

$datac = array(
'comment_name' => $this->input->post('comment_name'),
'comment_email' => $this->input->post('comment_email'),
'comment_body' => $this->input->post('comment_body')
);

return $this->db->insert('comments', $datac);
}
}

问题是,每当我提交表单时,它都不会返回任何内容,就像什么都没发生一样。请帮忙。

最佳答案

在您的comment_form.php中进行更改

echo form_open('news/create_comment');

echo form_open('comments/create_comment');

为什么?因为您提供给 form_open() 的第一个参数是操作参数。它将打开一个表单标签,如 <form action="bla"> 。而且 news/create_comment 不是您要调用的正确页面。您的 Controller 名为 comments ,这就是为什么你输入 comments/create_comment .

在您的comments.php中进行更改

$this->news_model->set_comment();

$this->comment_model->set_comment();

为什么?只是简单地指向错误的模型。也许是复制粘贴错误?

在您的comment_model.php中删除

$this->load->database();

并将其加载到您的config.php中(在库数组中,添加“数据库”)。

为什么?恕我直言,这是更合适的解决方案。您可能会经常使用数据库,那么为什么每次都加载它呢?

如果您仍然遇到问题,那么我们需要更多信息。究竟是什么不起作用。为我们进行一些调试。调用$this->news_model->set_comment()后写var_dump($this->db->last_query());

关于php - 无法使用 codeigniter 将值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19519803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com