首页 > 解决方案 > 如果 uid 存在,则更新值

问题描述

我想更新 MySQL 数据库的值。

如果uid在数据库中找不到具有 的用户,则应添加具有 和 值的新行uidfirstname但如果数据库中存在 ,则仅应更新uid列的值。first_name

这是我到目前为止所拥有的:

$em = $this->getDoctrine()->getManager();
$personal = new Personal();
$personal->setUid($uid);
$personal->setFirstName($value);

$em->persist($personal);
$em->flush();

这只会添加一个新行,但我如何更新该值?

标签: phpsymfonysymfony4

解决方案


你可以尝试这样的事情:

    $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();

推荐阅读