2014-03-02 70 views
4

在我的查看頁面,我有一個空白的輸入,但每當我必須發佈到我的數據庫,它會得到錯誤。不能發佈空白數據庫:postgreSQL和Codeigniter

查看頁:

<label for="column1">COLUMN1:</label> 
<input type="input" name="column1"> 

模型Page:

'column1' => $this->input->post('column1'), 

如果我輸入的是空白此代碼將無法滿足。我怎樣才能將它發佈到我的數據庫的值爲0而不是空白(因爲它不會令人滿意)。

Column1是一個整數類型,因此我知道空白值不是整數。誰能幫我。

BTW我用笨和PostgreSQL

編輯-------我真正的代碼

型號

public function changeNow_table2_A(){ 
$seq = $this->input->post('seq'); 
$data = array(

    'tech_voc' => $this->input->post('tech_voc'), 
    'bacc' => $this->input->post('bacc'), 
    'post_bacc' => $this->input->post('post_bacc'), 
    'llb' => $this->input->post('llb'), 
    'md' => $this->input->post('md') 

); 

    $this->db->where('seq', $seq); 
    $this->db->update('table2', $data); 
} // this work 

我試圖改變只

'bacc' => empty($this->input->post('bacc'))? 0 : $this->input->post('bacc'), 
    // changing 'bacc' to this, it gets server error. 
+0

此前5.5版本的'empty'功能只支持變量 - 你是傳遞函數,因此將拋出一個致命錯誤(如果你使用的是PHP的版本早於5.5)。從5.5版本開始,'empty'功能也支持表達式。請參閱文檔:http://us1.php.net/empty – m79lkm

回答

1

不確定您是否解決了這個問題 - 以防萬一,這裏是另一個答案。

$column1 = $this->input->post('column1'); 
$data = array('testcol' => 'testing', 
      'column1' => (empty($column1) || !is_numeric($column1)) ? 0 : $column1); 

這將設置column1爲0;如果column1爲空,或者COLUMN1不是數字


此前5.5版本的empty功能只支持變量。含義empty($this->input->post('field'))將會引發致命錯誤。 PHP 5.5支持使用表達式作爲參數empty。該錯誤最有可能是使用函數作爲empty函數的參數的結果。檢查你的PHP版本以確認這一點。

這裏是PHP空documentation

0

你可以使用三元運算符。

'column1' => empty($this->input->post('column1'))? 0 : $this->input->post('column1'), 
+0

爲什麼我得到服務器錯誤? – Kino

+0

您是否正確使用了代碼?你能發佈你的代碼嗎? –

+0

完成放碼。 – Kino