Php 如果uid存在,则更新值
我想更新MySQL数据库的一个值 如果在数据库中找不到具有uid的用户,则应使用uid和firstname的值添加新行,但如果数据库中存在uid,则只应更新first\U name列的值 这就是我到目前为止所做的:Php 如果uid存在,则更新值,php,symfony,symfony4,Php,Symfony,Symfony4,我想更新MySQL数据库的一个值 如果在数据库中找不到具有uid的用户,则应使用uid和firstname的值添加新行,但如果数据库中存在uid,则只应更新first\U name列的值 这就是我到目前为止所做的: $em = $this->getDoctrine()->getManager(); $personal = new Personal(); $personal->setUid($uid); $personal->setFirstName($value); $
$em = $this->getDoctrine()->getManager();
$personal = new Personal();
$personal->setUid($uid);
$personal->setFirstName($value);
$em->persist($personal);
$em->flush();
这将简单地添加一个新行,但如何更新该值?您可以尝试以下操作:
$em = $this->getDoctrine()->getManager();
$search = $this->getDoctrine()->getRepository(Personal::class)->findBy(array("uid" => $uid));
if (count($search) == 0) {
$personal = new Personal();
$personal->setUid($uid);
} else {
$personal = $search[0];
}
$personal->setFirstName($value);
$em->persist($personal);
$em->flush();
我建议你阅读这篇文章,只要查询数据库中的人物,如果找不到,就创建一个新的人物。条令ORM没有任何内置更新(如果存在),否则插入。我得到错误:在arraysorry@RezaSaadati上调用成员函数setFirstName我修复它$personal=$search[0];哇,太棒了,太棒了。非常感谢你!!