controller:Test.php
<?php
class Test extends CI_Controller {
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->model('Users_model');
$this->Users_model->insert_user();
$this->load->view('home');
}
}
&GT;
型号:User_model.php
<?php
class Users_model extends CI_Model
{
public function insert_user()
{
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'message' => $this->input->post('message')
);
return $this->db->insert('user', $data);
}
}
?>
查看:home.php
<form method="post">
<label for="name">your Name</label>
<input class="form-control" id="name" type="text" placeholder="Name" name="name" />
<label for="email">Your email</label>
<input class="form-control" id="email" type="text" placeholder="Email" name="email" />
<label for="message">Your Message</label>
<textarea class="form-control" id="message" placeholder="Message" name="message"></textarea>
<button type="submit">send</button>
</form>
我是codeigniter的新手,我想将表格值插入数据库,但它显示一些错误,即
如何修复此错误?请帮忙。
谢谢
答案 0 :(得分:3)
您收到错误是因为您在表单中提交的任何数据之前调用了User_model->insert_user()
。您应该检查是否有任何发布的数据,然后保存到数据库。以下是您的控制器的示例:
<?php
class Test extends CI_Controller {
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->model('Users_model');
// do checking right here
if (!empty($this->input->post('name'))) {
$this->Users_model->insert_user();
}
$this->load->view('home');
}
}
答案 1 :(得分:0)
您忘记在控制器中插入模型的插入方法中传递POST数据。
位指示
<?php
class Test extends CI_Controller {
public function index()
{
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'message' => $this->input->post('message')
);
$this->load->helper(array('form', 'url'));
$this->load->model('Users_model');
$this->Users_model->insert_user($data );
$this->load->view('home');
}
}
模型
<?php
class Users_model extends CI_Model
{
public function insert_user($data = [])
{
return $this->db->insert('user', $data);
}
}
?>
答案 2 :(得分:0)
您扩展 CI_Model 但未调用父构造。使用此:
function __construct() {
// Call the Model constructor
parent :: __construct();
}
希望这会奏效。感谢。
答案 3 :(得分:0)
在你的&#34; home.php&#34;你还没有指定一个动作属性。由于此表格价值未发布。
例如: - span
然后尝试在控制器中获取表单的值。
在控制器中,请执行此<form action="<?php echo base_url();?>YourfileName/DeclaredFunctionName" method="post">
如果您在浏览器中获取值,请删除exit()并执行代码。否则,请在此处分享您的错误。
由于