我想在一個數據庫表中插入一個新的記錄。 ,做插入的功能是這樣的:URI段不能被保存在數據庫中
public function comment($id_b,$comment){
$id_u = $this->session->userdata('userid');
$result=$this->db->insert('comments',['id_book'=>$id_b, 'id_user'=>$id_u, 'comment'=>$comment]);
return $result;
}
控制器功能,其中comment
叫做:
public function comment()
{
$this->load->model('model');
$id_b= $this->uri->segment('3');
$comment=$this->input->post('comment');
$this->model->comment($id_b,$comment);
}
我試圖得到URI段是id
。問題是,它不能被保存在數據庫中,它的值總是NULL
。
我試過echo $this->uri->segment('3');
它實際上返回的是id,但我不明白爲什麼它在數據庫中保存爲NULL
值。
當我嘗試這樣做:(int)$this->uri->segment('3');
,我得到這個錯誤:
錯誤編號:1452
不能添加或更新子行:外鍵約束失敗(db
comments
,約束comments_ibfk_1
FOREIGN KEY (id_book
)參考文獻book
(id_book
))
INSERT INTO comments
(id_book
,id_user
,comments
)VALUES(0,「5」,「測試」)
因此,它試圖插入一本書id_book=0
的時候其實有書中表中沒有這樣的記錄,我不知道它在哪兒得到id_book=0
因爲$this->uri->segment(3)
返回1.
'$這個 - > URI->段(3);'應該是整數,檢查它是否改變了什麼? – cssBlaster21895
@ cssBlaster21895你在說我應該將'$ this-> uri-> segment(3)'轉換爲整數? – eri
什麼是PHP版本?只有在php 5.4之後,你可以使用短陣列語法,它用[]替換array()。 – Vickel