首页 > 后端开发 > php教程 > TP create函数无效

TP create函数无效

WBOY
发布: 2016-06-20 12:28:54
原创
947 人浏览过

数据库是oracle11g,一开始以为是oracle字段大小写问题导致的,后来把post索引全改大写,依然不好使,create返回空

class TestAction extends Action{	function add(){		if(IS_POST){			$m=D('Test');                        //post索引改大写			$_POST=array_change_key_case($_POST,CASE_UPPER);			show_bug($_POST);			$vo=$m->create();                        //返回空数组			show_bug($vo);			//返回false			show_bug($m->add());//->add();			show_bug($m->_sql());		}else{			$this->display();		}	}}
登录后复制

求解 !!


回复讨论(解决方案)

应该是的吧?
create 是从模型中建立自动验证
而模型你是怎么建立的?
对于 MySQL,TP 是使用 DESCRIBE 指令获取字段信息的
但 oracle 并没有 DESCRIBE 指令,那么 TP 还会替你完成吗?



应该是的吧?
create 是从模型中建立自动验证
而模型你是怎么建立的?
对于 MySQL,TP 是使用 DESCRIBE 指令获取字段信息的
但 oracle 并没有 DESCRIBE 指令,那么 TP 还会替你完成吗?

模型中只写了个trueTableName,那是create方法不支持oracle吗?

不知道现在的 TP 支持 MySQL 以外的数据库到什么程度
按说是应该给每个表建一个表结构文件的

show_bug($m->_sql()) 结果:
select a.column_name,data_type,decode(nullable,'Y',0,1) notnull,data_default,decode(a.column_name,b.column_name,1,0) pk from user_tab_columns a,(select column_name from user_constraints c,user_cons_columns col where c.constraint_name=col.constraint_name and c.constraint_type='P'and c.table_name='TEST1') b where table_name='TEST1' and a.column_name=b.column_name(+)
是用来获取字段信息的:

解决了,算是TP的bug吧。必须在模型里指定fields

主要是oracle没有DESCRIBE,所以TP实现不到,但又没有专门处理这个问题。
只能模型里指定fields解决。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板