Home > Backend Development > PHP Tutorial > TP create函数无效

TP create函数无效

WBOY
Release: 2016-06-20 12:28:54
Original
947 people have browsed it

数据库是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();		}	}}
Copy after login

求解 !!


回复讨论(解决方案)

应该是的吧?
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解决。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template