我想更新MySQL数据库的值。
如果在数据库中找不到具有uid
的用户,则应添加一个新行,其值分别为uid
和firstname
,但是如果uid
存在于数据库中,仅应更新列first_name
的值。
这是我到目前为止所拥有的:
$em = $this->getDoctrine()->getManager();
$personal = new Personal();
$personal->setUid($uid);
$personal->setFirstName($value);
$em->persist($personal);
$em->flush();
这只会添加一个新行,但是如何更新值?
答案 0 :(得分:1)
您可以尝试以下操作:
$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();