Home >PHP Framework >ThinkPHP >What to do if thinkphp fails to be added to sql

What to do if thinkphp fails to be added to sql

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-08-22 15:37:212367browse

What to do if thinkphp fails to be added to sql

What should I do if ThinkPHP fails to add data to the database?

Generally, several aspects will be checked first:

· Check whether the controller or Model name is incorrect.

·Check whether the data to be inserted is empty or missing parameters.

·Check the data table name and field name (most of the time, the field name is wrong).

If you check repeatedly and find that the data to be inserted is normal and the field names and table names are correct, you may wonder if the program has lost its temper and you need to quit and start again? Restart? Try again? After struggling like this for a long time, you find that nothing has changed. At this time, you should consider other situations.

Related recommendations: "ThinkPHP Tutorial"

fields field caching

When using the ThinkPHP framework for development, there are data structures When making changes, when calling the M()->add() method to insert data, the insertion always fails and some field contents are lost. So if you print out the model object and look carefully, you will find that the lost fields are all newly added fields. You will think of cache, so you can clear all the cache files in the runtime and insert it normally.

TP If the field cache setting [TMPL_CACHE_ON => false] is not turned off in the configuration file, this configuration means whether to turn on the template compilation cache. If set to false, it will be recompiled every time. The default is turned on. , as soon as it is run, it will cache the data field information to the ~Runtime/Data/_files folder, and store it in the file as an array. Just close it if you don’t need it.

·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

· System behavior extension: template parsing, check whether the cache file is valid, if it is invalid, it needs to be recompiled, 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 above is the detailed content of What to do if thinkphp fails to be added to sql. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn