一般情況下會先檢查一下幾個方面:
·檢查控制器或Model名是否有誤。
·檢查需要插入的數據是否為空或者缺失參數。
立即學習“PHP免費學習筆記(深入)”;
·檢查數據表名及字段名稱(大部分下都是字段名有誤出錯的)。
如果反復檢查,需插入的數據是正常的,字段名表名也沒有錯誤,你可能會想是不是程序耍脾氣了,退出重來?重啟一下?重來試一下?就這么折騰半天發現并沒有什么改變,這時候你該考慮一下其他情況了。
相關推薦:《ThinkPHP教程》
fields字段緩存
使用thinkphp框架做開發時,有數據結構改動時,調用 M()->add()方法插入數據時,總會插入失敗,丟失掉部分字段內容,于是將模型對象打印出來仔細查看,會發現丟失的字段都是新增加的字段,你就會聯想到緩存了,于是你將runtime里面的緩存文件都清除掉就可以正常插入了。
TP在配置文件中如果沒有關閉字段緩存設置 [TMPL_CACHE_ON => false],該配置的意思是是否開啟模板編譯緩存,設為false則每次都會重新編譯,默認是開啟的,只要一運行它就會將數據字段信息緩存到~Runtime/Data/_files 文件夾下,并以數組方式存放在文件中,不需要就關閉好啦。
·debug.php
??return??array( ?????'LOG_RECORD'=>??true,??//?進行日志記錄 ?????'LOG_EXCEPTION_RECORD'=>??true,????//?是否記錄異常信息日志 ?????'LOG_LEVEL'=>??'EMERG,ALERT,CRIT,ERR,WARN,NOTIC,INFO,DEBUG,sql',??//?允許記錄的日志級別 ?????'DB_FIELDS_CACHE'=>??false,?//?字段緩存信息 ??????'DB_DEBUG'=>??true,?//?開啟調試模式?記錄SQL日志 ??????'TMPL_CACHE_ON'=>??false,????????//?是否開啟模板編譯緩存,設為false則每次都會重新編譯 ??????'TMPL_STRIP_SPACE'=>??false,???????//?是否去除模板文件里面的html空格與換行 ??????'SHOW_ERROR_MSG'=>??true,????//?顯示錯誤信息 ??????'URL_CASE_INSENSITIVE'=>??false,??//?URL區分大小寫 ???);
·convention.php
??//?布局設置 ??'TMPL_ENGINE_TYPE'??????=>??'Think',?????//?默認模板引擎?以下設置僅對使用Think模板引擎有效 ??'TMPL_CACHFILE_SUFFIX'??=>??'.php',??????//?默認模板緩存后綴 ??'TMPL_DENY_FUNC_LIST'???=>??'echo,exit',????//?模板引擎禁用函數 ??'TMPL_DENY_PHP'?????????=>??false,?//?默認模板引擎是否禁用PHP原生代碼 ??'TMPL_L_DELIM'??????????=>??'{',????????????//?模板引擎普通標簽開始標記 ??'TMPL_R_DELIM'??????????=>??'}',????????????//?模板引擎普通標簽結束標記 ??'TMPL_VAR_IDENTIFY'?????=>??'array',?????//?模板變量識別。留空自動判斷,參數為'obj'則表示對象 ??'TMPL_STRIP_SPACE'??????=>??true,???????//?是否去除模板文件里面的html空格與換行 ??'TMPL_CACHE_ON'?????????=>??true,????????//?是否開啟模板編譯緩存,設為false則每次都會重新編譯 ??'TMPL_CACHE_PREFIX'?????=>??'',?????????//?模板緩存前綴標識,可以動態改變 ??'TMPL_CACHE_TIME'???????=>??0,?????????//?模板緩存有效期?0?為永久,(以數字為值,單位:秒) ??'TMPL_LAYOUT_ITEM'??????=>??'{__CONTENT__}',?//?布局模板的內容替換標識 ??'LAYOUT_ON'?????????????=>??false,?//?是否啟用布局 ??'LAYOUT_NAME'???????????=>??'layout',?//?當前布局名稱?默認為layout
·系統行為擴展:模板解析,檢查緩存文件是否有效,如果無效則需要重新編譯,ParseTemplateBehavior.class.php
??protected?function?checkCache($tmplTemplateFile,$prefix='')?{ ??if?(!C('TMPL_CACHE_ON'))?//?優先對配置設定檢測 ??????return?false; ??$tmplCacheFile?=?C('CACHE_PATH').$prefix.md5($tmplTemplateFile).C('TMPL_CACHFILE_SUFFIX'); ??if(!Storage::has($tmplCacheFile)){ ??????return?false; ??}elseif?(filemtime($tmplTemplateFile)?>?Storage::get($tmplCacheFile,'mtime'))?{ ??????//?模板文件如果有更新則緩存需要更新 ??????return?false; ??}elseif?(C('TMPL_CACHE_TIME')?!=?0?&&?time()?>?Storage::get($tmplCacheFile,'mtime')+C('TMPL_CACHE_TIME'))?{ ??????//?緩存是否在有效期 ??????return?false; ??} ??//?開啟布局模板 ??if(C('LAYOUT_ON'))?{ ??????$layoutFile??=??THEME_PATH.C('LAYOUT_NAME').C('TMPL_TEMPLATE_SUFFIX'); ??????if(filemtime($layoutFile)?>?Storage::get($tmplCacheFile,'mtime'))?{ ??????????return?false; ??????} ??} ??//?緩存有效 ??return?true; ??}
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦