thinkphp create方法失敗的解決方法:1、寫一個測試方法,模擬前端頁面使用者輸入的數據,程式碼如「 public function insert2(){...}」;2、給資料庫中的status欄位新增預設值為1並儲存設定即可。
本教學操作環境:Windows7系統、THINKPHP5.1版、Dell G3電腦。
thinkphp create方法失敗怎麼辦?
解決THINKPHP5.1模型中create方法寫入失敗,但是沒有錯誤提示
思路,寫一個測試方法,模擬前段頁面用戶輸入的數據,保存為$data,類似下面的代碼
public function insert2() { $data = [ 'name'=>'chen', 'password'=>'abc1234', 'email'=>'chen@qq.com', 'mobile'=>'18285859696' ]; return UserModel::create($data); }
在瀏覽器中訪問一下這個方法,返回如下結果,可以看到,字段status是沒有默認值的,而我們也沒有給他傳遞值,所以create方法寫入失敗了!
資料庫中的欄位截圖,資料庫中status欄位確實沒有預設值,我們給預設值選項打上勾,然後給個1值,儲存然後再試試看
可以看到成功的回傳值了
##
#心得:下次遇到不提示錯誤的情況,就寫一個新方法,模擬前端的數據,還有個很重要的方法就是,也要去看runtime下的log,它也會提示對應的錯誤[ info ] [ DB ] INIT mysql
[ sql ] [ DB ] CONNECT:[ UseTime:0.001346s ] mysql:host=localhost;dbname=zh;charset=utf8
[ sql ] [ SQL ] SHOW COLUMNS FROM `zh_user` [ RunTime:0.001726s ]
[ error ] [10501]SQLSTATE[HY000]: General error: 1364 Field 'status' doesn't have a default value[D:\Wamp64\www\zh\thinkphp\library\think\db\Connection.php:7
error就是錯誤,也提示了Field 'status' doesn't have a default value
以上是thinkphp create方法失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!