php导入sql失败怎么办,thinkphp添加到sql失败怎么办

6e18809e19c0277ffbd1c76a45ef6db1.png

ThinkPHP添加数据到数据库失败怎么办?

一般情况下会先检查一下几个方面:

·检查控制器或Model名是否有误。

·检查需要插入的数据是否为空或者缺失参数。

·检查数据表名及字段名称(大部分下都是字段名有误出错的)。

如果反复检查,需插入的数据是正常的,字段名表名也没有错误,你可能会想是不是程序耍脾气了,退出重来?重启一下?重来试一下?就这么折腾半天发现并没有什么改变,这时候你该考虑一下其他情况了。

fields字段缓存

使用ThinkPHP框架做开发时,有数据结构改动时,调用 M()->add()方法插入数据时,总会插入失败,丢失掉部分字段内容,于是将模型对象打印出来仔细查看,会发现丢失的字段都是新增加的字段,你就会联想到缓存了,于是你将runtime里面的缓存文件都清除掉就可以正常插入了。

TP在配置文件中如果没有关闭字段缓存设置 [TMPL_CACHE_ON => false],该配置的意思是是否开启模板编译缓存,设为false则每次都会重新编译,默认是开启的,只要一运行它就会将数据字段信息缓存到~Runtime/Data/_files 文件夹下,并以数组方式存放在文件中,不需要就关闭好啦。

·debug.phpreturn 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.phpprotected 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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值