ThinkPhp非法数据对象

不言
发布: 2018-05-18 14:13:24
原创
1552人浏览过

 $data = $_POST;  
     $data['user_id']    = 1;  
     $data['create_at']  = date("Y-m-d H:i:s");  
     $data['update_at']  = date("Y-m-d H:i:s");  
     $data['is_enable']  = 1;  
     $data['is_visible'] = 1;  
     $categoryModel  = new \Admin\Model\CategoryModel();  
     $footPosition   = $categoryModel->getFootPosition();  
     $data['position']   = intval($footPosition) + 1;  
  
  
 // var_dump($data);  
  $categoryModel->add($data);
登录后复制

我开始以为是position类型不对,可是不论转为string还是int,还是一样报非法数据对象错误。$data['position'] = intval($footPosition) + 1;这个注释掉插入数据就没问题了。求助啊.  
 
var_dump后的结果如下,看不出什么问题啊。  

array(7) { ["category_name"]=> string(12) "风言风语" ["user_id"]=> int(1) ["create_at"]=> string(19) "2015-04-
05 15:39:41" ["update_at"]=> string(19) "2015-04
-05 15:39:41" ["is_enable"]=> int(1) ["is_visible"]=> int(1) ["position"]=> int(2) }
登录后复制

数据库栏位position,已确定不包含空格,及栏位名称是一致的。  

回复讨论(解决方案)

$footPosition   = $categoryModel->getFootPosition();  
后,打印出 $footPosition 看看是些什么  
 
另外,出错时应给出原始的错误信息

问题已解决。进了ThinkPhp\Model,_facade函数,

   foreach ($data as $key=>$val){  
              file_put_contents("xiaobin.txt", $key."\n", FILE_APPEND) ;  
              file_put_contents("xiaobin.txt", $fields, FILE_APPEND);  
                 if(!in_array($key,$fields,true)){  
                     if(APP_DEBUG){  
                         E(L('_DATA_TYPE_INVALID_').':['.$key.'=>'.$val.']');  
                     }                      
                     unset($data[$key]);  
                 }elseif(is_scalar($val)) {  
                     // 字段类型检查 和 强制转换  
                     $this->_parseType($data,$key);  
                 }  
             }
登录后复制

发现field数组结果如下:category_iduser_idcategory_nameblog_numcreate_atupdate_atis_enableis_visiblepre_positionnext_positioncategory_idArray,这些都是数据库列名,其中pre_position,next_position是开始建表时的栏位,后来我删了这两列,添了position这一列。缓存已禁用,所以清除缓存也没用。  
最后发现这数据保存在Runtime/Data/_fields里,删了就好了。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号