簡體   English   中英

插入新值時數據庫錯誤MySQL / CodeIgniter PHP

[英]Database error MySQL/CodeIgniter PHP when inserting a new value

當我嘗試在MySQL數據庫中插入新值時,出現以下錯誤:


錯誤號:1048

“電子郵件”列不能為空

插入電子郵件(email)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。 但是,表單中的方法發布似乎是正確的。

嘗試這個:

public function addemail(){
    //ini_set('display_errors','off');
    $this->load->model('Model_email');
    $this->Model_email->addemail($this->input->post('email'));
}

嘗試:

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

查看提交的內容,屆時您將看到POST提交的內容。

嘗試這個

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"]); 
    }
}

使用這個:

$ data = array('email'=> $ email

);

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

//產生:INSERT INTO mytable(標題,名稱,日期)VALUES(“ My title”,“ My name”,“ My date”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM