数据库错误MySQL / CodeIgniter插入新值时的PHP

时间:2015-05-12 21:14:29

标签: php mysql codeigniter sql-insert

当我尝试在MySQL数据库中插入新值时,出现以下错误:

错误号码:1048

列'email'不能为空

INSERT INTO电子邮件(电子邮件)VALUES(NULL)

文件名:models / Model_email.php

行号:7

当我在本地服务器上运行网站时,我没有出现此错误,错误出现在生产中。我使用框架CodeIgniter在PHP中编码。

但代码非常简单:

Controler.php

public function addemail(){

    ini_set('display_errors','off');
    $this->load->model("Model_email","", true);
    $this->Model_email->addemail($_POST["email"]); 

}

Model_email.php

public function addemail($email){
    $sql = "INSERT INTO emails(email)VALUES(?)";
    $data = array($email);
    $this->db->query($sql,$data);
    return $this->db->insert_id();
}

HTML表单

<form method="post" action="<?=site_url("/Controler/addemail")?>">
<input type="text" name="email">
<input type="submit">
</form>

当我在Model_email.php中的函数中添加var_dump($ email)或在Controler.php中添加var_dump($ _ POST [“email”])时,两个页面都显示为NULL。然而,表格中的方法帖子似乎是正确的。

4 个答案:

答案 0 :(得分:0)

Try this:

savedInstanceState

答案 1 :(得分:0)

尝试:

var_dump($this->input->post(NULL, TRUE));

查看提交的内容,届时您将看到POST提交的内容。

答案 2 :(得分:0)

试试这个

public function addemail(){
    //ini_set('display_errors','off');
    if(isset($_POST["email"]) && $_POST["email"] && !empty($_POST["email"])){
         $this->load->model("Model_email","", true);
         $this->Model_email->addemail($_POST["email"]); 
    }
}

答案 3 :(得分:0)

使用这个:

$ data = array(    'email'=&gt; $ email

);

$ this-&gt; db-&gt; insert('tablename',$ data);

//生成:INSERT INTO mytable(标题,名称,日期)VALUES('我的标题','我的名字','我的约会')

相关问题