我用add方法提交資料之後,資料庫總是插不進去我要插入的資料。
html
post方法提交的資料可以在下面方法中擷取到,就是add不進去
add
public function add(){ header("Content-Type:text/html; charset=utf-8"); if(isset($_POST["add"])){ $room=M('room'); $roominfo['room_id']=$_POST["room_id"]; $roominfo['room_type']=$_POST["room_type"]; $roominfo['room_status']=$_POST["room_status"]; $roominfo['room_area']=$_POST["room_area"]; $roominfo['room_cost']=$_POST["room_cost"]; $roominfo['room_description']=$_POST["room_description"]; $room->add($roominfo); echo "";// $this->display("add"); //這裡在裡面寫資料是因為沒有展示該方法名稱為主的頁面 } }
請問我是哪裡寫錯了嗎
?
回複內容:
我用add方法提交資料之後,資料庫總是插不進去我要插入的資料。
html
post方法提交的資料可以在下面方法中擷取到,就是add不進去
add
public function add(){ header("Content-Type:text/html; charset=utf-8"); if(isset($_POST["add"])){ $room=M('room'); $roominfo['room_id']=$_POST["room_id"]; $roominfo['room_type']=$_POST["room_type"]; $roominfo['room_status']=$_POST["room_status"]; $roominfo['room_area']=$_POST["room_area"]; $roominfo['room_cost']=$_POST["room_cost"]; $roominfo['room_description']=$_POST["room_description"]; $room->add($roominfo); echo "";// $this->display("add"); //這裡在裡面寫資料是因為沒有展示該方法名稱為主的頁面 } }
請問我是哪裡寫錯了嗎
?
你列印出產生的sql語句或者入庫的錯誤資訊就知道了
檢測是否開啟了資料庫欄位緩衝:
將Runtime/Data/_fields/下面的欄位緩衝刪除,或者直接刪除整個Runtime檔案
tp有內建的add()函數,不知道會不會和它衝突了?
還有如果開啟偵錯模式,如果是資料庫的問題是有提示的
var_dump下$_POST,看看有沒有正確接收資料,在add方法裡echo 一個字串,看看有沒有進入該方法,然後dump下$room,看看模型有木有執行個體化成功,在設定檔開啟頁面調試show_page_trace => true,查看產生的sql語句
先用var_dump看看$_POST是否傳遞成功,在用var_dump看看$model-〉add($room_info)返回資料庫表主鍵沒有,沒有就是添加失敗,在用getlastsql()查看上一條資料庫語句。檢查下欄位名有沒有寫錯了