Symfony - 我需要在数据库中插入或更新记录
主键是 Id,但我想检查数据库中是否已存在具有相同缩写词的记录,如果不存在,则插入新记录,如果存在,我需要进行更新。我写了这段代码,但它不起作用。我收到来自 symfony 的消息“完整性违规:1062 密钥“PRIMARY”的重复条目“180””
$id = Doctrine_Core::getTable('college')->findBy('acronym', 'PMM')->getFirst()->getId();
$college = new college();
$college->setId($id);
$college->setAcronym('PMM');
$college->setName('Paulo Miguel Mar');
$college->setUrl('www.pmm.com');
$college->save();
任何人都可以帮助我吗? 谢谢。 Alexandre Sousa
我已经尝试过replace() 解决方案,但我遇到了一些问题,因为我想保留我的id 字段。所以我想做更新而不是替换。
我认为 save() 应该可以工作,因为我在某处读到这个函数足够智能,可以进行更新或插入。我仍然收到此消息:“完整性违规:1062 密钥“PRIMARY”的重复条目“180””
任何人都可以帮助我吗?
谢谢。
The primary key is Id, but i want to check if already exists a record in db with same acronym, and if not, insert a new one, if exists, I need to do an update. I wrote this code, but it doesn't work. I receive this message from symfony "Integrity violation: 1062 Duplicate entry '180' for key 'PRIMARY'"
$id = Doctrine_Core::getTable('college')->findBy('acronym', 'PMM')->getFirst()->getId();
$college = new college();
$college->setId($id);
$college->setAcronym('PMM');
$college->setName('Paulo Miguel Mar');
$college->setUrl('www.pmm.com');
$college->save();
Anyone can help me?
Thanks.
Alexandre Sousa
I've tried the replace() solution, but I have some problems because I want to keep my id field. So I wanna do an update and not a replace.
I think save() should works, cause I read somewhere that this function is smart enough to do an update or insert. I still get this message: "Integrity violation: 1062 Duplicate entry '180' for key 'PRIMARY"
Anyone can help me?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决方案非常简单,只需使用
replace()
:当然,当且仅当您将首字母缩略词指定为唯一时,这才有效。
The solution is dead simple, just use
replace()
:This will work if and only if you have specified acronym as unique, of course.