Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果uid存在,则更新值_Php_Symfony_Symfony4 - Fatal编程技术网

Php 如果uid存在,则更新值

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

我想更新MySQL数据库的一个值

如果在数据库中找不到具有uid的用户,则应使用uid和firstname的值添加新行,但如果数据库中存在uid,则只应更新first\U name列的值

这就是我到目前为止所做的:

$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];哇,太棒了,太棒了。非常感谢你!!