Heim  >  Artikel  >  PHP-Framework  >  Was tun, wenn thinkphp nicht zu SQL hinzugefügt werden kann?

Was tun, wenn thinkphp nicht zu SQL hinzugefügt werden kann?

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

Was tun, wenn thinkphp nicht zu SQL hinzugefügt werden kann?

Was soll ich tun, wenn ThinkPHP keine Daten zur Datenbank hinzufügen kann?

Im Allgemeinen werden zunächst mehrere Aspekte überprüft:

·Überprüfen Sie, ob der Controller- oder Modellname falsch ist.

·Überprüfen Sie, ob die einzufügenden Daten leer sind oder Parameter fehlen.

·Überprüfen Sie den Datentabellennamen und den Feldnamen (meistens ist der Feldname falsch).

Wenn Sie wiederholt überprüfen, sind die einzufügenden Daten normal und die Feldnamen und Tabellennamen sind korrekt. Sie fragen sich vielleicht, ob das Programm die Fassung verloren hat und Sie es beenden und erneut starten müssen? Neustart? Versuchen Sie es erneut? Nachdem Sie lange Zeit so gekämpft haben, stellen Sie fest, dass sich nichts geändert hat. Zu diesem Zeitpunkt sollten Sie über andere Situationen nachdenken.

Verwandte Empfehlungen: „ThinkPHP-Tutorial

Feld-Feld-Caching

Bei Verwendung des ThinkPHP-Frameworks für die Entwicklung gibt es solche Datenstrukturen Wenn Sie Änderungen vornehmen und die Methode M()->add() zum Einfügen von Daten aufrufen, schlägt das Einfügen immer fehl und einige Feldinhalte gehen verloren. Wenn Sie also das Modellobjekt ausdrucken und genau hinsehen, werden Sie das feststellen Die verlorenen Felder sind alle neu hinzugefügte Felder. Sie denken an den Cache, sodass Sie alle Cache-Dateien zur Laufzeit löschen und normal einfügen können.

Wenn TP die Feldcache-Einstellung [TMPL_CACHE_ON => false] in der Konfigurationsdatei nicht deaktiviert, bedeutet diese Konfiguration, ob der Vorlagenkompilierungscache aktiviert werden soll. Wenn sie auf „false“ gesetzt ist, wird sie neu kompiliert Jedes Mal ist es aktiviert. Sobald es ausgeführt wird, werden die Datenfeldinformationen im Ordner ~Runtime/Data/_files zwischengespeichert und bei Bedarf in der Datei gespeichert brauche es nicht.

·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

· Systemverhaltenserweiterung: Vorlagenanalyse, Prüfung, ob die Cache-Datei gültig ist. Wenn sie ungültig ist, muss sie neu kompiliert werden, 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;
  }

Das obige ist der detaillierte Inhalt vonWas tun, wenn thinkphp nicht zu SQL hinzugefügt werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn