请问cakephp使用save方法的时候如果有两个主键该如何实现数据的保存?

怎么什么名字都不能用 2012-02-16 01:12:47
SQL Error: 1062: Duplicate entry '13-2' for key 'PRIMARY' [CORE\cake\libs\model\datasources\dbo_source.php,
Query: UPDATE `itemattr` SET `id` = 13, `sid` = 2, `subname` = 'OL' WHERE `itemattr`.`id` = 13


因为id是相同的要根据sid来定位到单个信息,但是save中后面不知道怎么加条件,希望高手解决,谢谢了!!!
...全文
1306 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
saturndragon 2012-03-05
  • 打赏
  • 举报
回复
cakephp? $this->XXXX->id = XXX; $this->XXXX->save($data);

用CAKE你应该懂了 SAVE之前确认你的ID 如果是多个表存储 在model里面设置多表关联
一起混吧 2012-02-16
  • 打赏
  • 举报
回复
主键不能重复。当插入/更新时,id-sid不能重复。
  • 打赏
  • 举报
回复
是联合主键,我该怎么做。
我用到是save方法,不想用update方法,因为我以后还要插入新的数据。
  • 打赏
  • 举报
回复
是联合主键。该则么做呢。
我是想用save方法,不想用update方法。
一起混吧 2012-02-16
  • 打赏
  • 举报
回复
可以那样加条件。只是update更新时,主键不能重复。
你的表中是id、sid联合主键吧?还是单个字段。
  • 打赏
  • 举报
回复
我第一次使用php语言所以对这个框架更是不了解。麻烦你说详细点 。
Query: UPDATE `itemattr` SET `id` = 13, `sid` = 2, `subname` = 'OL' WHERE `itemattr`.`id` = 13
这条语句是我调用save()方法时自动生成的,因为数据库里已有这条数据。我现在想知道如何能在save方法中添加条件,例如 where id=1 and sid=2。 否则但是id=1 这样会有很多相同的信息,那这条语句就不会被执行。望指教啊。
一起混吧 2012-02-16
  • 打赏
  • 举报
回复
加条件是没问题的。是update上的问题。
  • 打赏
  • 举报
回复
你所说主键唯一的意思是 我们没有办法在'where WHERE `itemattr`.`id` = 13 ' 后面加上自己的条件么? 例如我想加上 'and sid=1’ 这样的条件。
一起混吧 2012-02-16
  • 打赏
  • 举报
回复
主键必须唯一,不能重复。

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧