ThinkPHP 데이터베이스에 데이터를 추가하지 못하면 어떻게 해야 합니까?
일반적으로 여러 측면을 먼저 확인합니다.
·컨트롤러 또는 모델명이 잘못된지 확인하세요.
·삽입할 데이터가 비어 있거나 매개변수가 누락되었는지 확인하세요.
·데이터 테이블 이름과 필드 이름을 확인하세요(대부분 필드 이름이 잘못되어 있음).
반복적으로 확인해보면 삽입되는 데이터도 정상이고, 필드명, 테이블명도 맞는데 프로그램이 정신이 없어 종료하고 다시 시작해야 하는 건 아닐까? 다시 시작하시겠습니까? 다시 시도하시겠습니까? 이렇게 오랫동안 고생한 후에는 아무것도 바뀌지 않았다는 것을 알게 됩니다. 이때는 다른 상황을 고려해야 합니다.
관련 권장 사항: "ThinkPHP 튜토리얼"
fields 필드 캐싱
개발을 위해 ThinkPHP 프레임워크를 사용할 때 데이터 구조에 변경이 있는 경우, 데이터를 삽입하기 위해 M()->add() 메서드를 호출하면 삽입이 항상 실패하고 필드 내용의 일부가 손실됩니다. 그러므로 모델 객체를 출력해서 잘 살펴보면 사라진 필드는 모두 새로 추가된 필드이고, 캐시라고 생각하면 런타임에 캐시 파일을 모두 지우고 정상적으로 삽입할 수 있다는 것을 알 수 있습니다.
TP 구성 파일에서 필드 캐시 설정 [TMPL_CACHE_ON => 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!