首页 > 解决方案 > 为什么数据库无法获取 post 方法发送的数据?

问题描述

我正在学习 PHP OOP,但遇到了问题。这是一个真正的初学者代码,我正在练习考试,但我被困住了,所以我需要一些帮助。我使用 CodeIgniter,数据库库已填充并自动加载。

我有一个表格:用户必须填写姓名、电子邮件和电话字段。控制器得到它,将其提供给应该将数据插入数据库的模型,但我收到一条错误消息:“列'trainedName'不能为空”所以我猜它首先没有获取数据。

视图(简化):

<form action="index.php/aboutme/calling" method="POST" enctype="text/plain">
  <input class="callback" type="text" name="nev" placeholder="Neved:" required>
  <input class="callback" type="email" name="email" placeholder="E-mail címed:"  required>
  <input class="callback" type="tel" name="telszam" placeholder="Telefonszámod (36201234567):"  required>
  <input type="submit">
</form>

控制器:

class Aboutme extends CI_Controller {
public function calling() {
            $datas=array();
            
            $trained = new Callback();
            $trained->addTrained($datas);

            $this->load->view('aboutme');
    }

模型:

class Callback extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    public function addTrained(){

        $na = $this->input->post('nev');
        $em = $this->input->post('email');
        $ph = $this->input->post('telszam');

        $datas = array(
            'trainedName' => $na, 
            'email' => $em, 
            'phone' => $ph
        );   

        $this->db->insert('trained', $datas);
}        

感谢您的帮助!

标签: phpcodeigniter

解决方案


你说enctype="text/plain"这会导致表单以对人类更具可读性但无法被机器可靠解释的表单提交数据。PHP 不会为您解析该格式。不要那样做。


推荐阅读