Rumah > pembangunan bahagian belakang > tutorial php > TP create函数无效

TP create函数无效

WBOY
Lepaskan: 2016-06-20 12:28:54
asal
946 orang telah melayarinya

数据库是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();		}	}}
Salin selepas log masuk

求解 !!


回复讨论(解决方案)

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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan