首頁  >  文章  >  php框架  >  thinkphp加入sql失敗怎麼辦

thinkphp加入sql失敗怎麼辦

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-08-22 15:37:212324瀏覽

thinkphp加入sql失敗怎麼辦

ThinkPHP新增資料到資料庫失敗怎麼辦?

一般情況下會先檢查幾個面向:

·檢查控制器或Model名稱是否有誤。

·檢查需要插入的資料是否為空或缺失參數。

·檢查資料表名及欄位名稱(大部分下都是欄位名稱有誤出錯的)。

如果反覆檢查,需插入的資料是正常的,字段名表名也沒有錯誤,你可能會想是不是程式耍脾氣了,退出重來?重啟一下?重來試一下?就這麼折騰半天發現並沒有什麼改變,這時候你該考慮一下其他情況了。

相關推薦:《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;
  }

以上是thinkphp加入sql失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn