CakePHP – 为什么Model :: save cause()是INSERT而不是UPDATE?
发布时间:2020-12-13 13:48:13 所属栏目:PHP教程 来源:网络整理
导读:我想用CAKE PHP的方式更新数据库 这是我的控制器 $data = array('KnowledgeBase' = array('kb_title' = $this-data['KnowledgeBase']['kb_title'],'kb_content' = $this-data['KnowledgeBase']['kb_content']'kb_last_update' = date("Y-m-d G:i:s"),'kb_seg
我想用CAKE
PHP的方式更新数据库
这是我的控制器 $data = array( 'KnowledgeBase' => array( 'kb_title' => $this->data['KnowledgeBase']['kb_title'],'kb_content' => $this->data['KnowledgeBase']['kb_content'] 'kb_last_update' => date("Y-m-d G:i:s"),'kb_segment' => $this->data['KnowledgeBase']['kb_segment'] )); $this->KnowledgeBase->id_kb = $this->data['KnowledgeBase']['id_kb']; $this->KnowledgeBase->save($data); 假设我执行程序时,我的帖子形式是真的 Database Error Error: SQLSTATE[23000]: [Microsoft][SQL Server Native Client 10.0] [SQL Server]Violation of PRIMARY KEY constraint 'PK_cnaf_kb'. Cannot insert duplicate key in object 'dbo.cnaf_kb'. SQL Query: INSERT INTO [cnaf_kb] ([kb_judul],[kb_segment],[kb_isi],[id_kb],[kb_last_update],[kb_status]) VALUES (N'HARRIS TEST 4 ',N'4',N'<p>TESSSSSSSSSSSSSSSSSSSSSS</p> ',73,'2013-10-04 16:57:00',1) 为什么函数使用insert查询?没有更新? 注意:我没有使用表单助手发布到控制器,我使用Cakephp 2.3.8版本和sql server 2008作为数据库 对不起我的英语不好,我希望有人可以帮助我:(((
您没有提供主键值,这就是原因.
无论您的主键名称是什么( $this->KnowledgeBase->id = $this->data['KnowledgeBase']['id_kb']; 在内部,模型将其映射到适当的主键字段. 但是,在数据中,您将使用实际的主键名称: 'id_kb' => $this->data['KnowledgeBase']['id_kb'] 顺便说一句,我不确定你为什么(重新)构建数据数组,但如果要确保只保存特定字段,那么你可以改用 $this->data['KnowledgeBase']['kb_last_update'] = date('Y-m-d G:i:s'); $options = array( 'fieldList' => array( 'kb_title','kb_content','kb_last_update','kb_segment' ) ); $this->KnowledgeBase->save($this->data,$options); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |