gpt4 book ai didi

symfony - 是否可以使用 createQueryBuilder 进行插入/更新?如果没有,我应该使用什么功能?

转载 作者:行者123 更新时间:2023-12-02 02:18:41 24 4
gpt4 key购买 nike

现在我成功创建了一个函数,使用 Doctrine 的函数 createQueryBuilder 从数据库检索数据。

有人知道是否有类似的函数来插入或更新数据库?或者我如何使用createQueryBuilder?

最佳答案

Doctrine 2 ORM 不支持通过 DQL INSERTDQL query builder 。有关完整语法,请查看 the EBNF of DQL .

要处理 ORM 中的插入,您始终手动实例化实体并使用实体管理器持久化它:

$user = new \My\Entity\User();

$entityManager->persist($user);
$entityManager->flush();

您只能在 Doctrine ORM 中通过 DQL 处理 SELECTUPDATEDELETE:

  • 选择:

    SELECT u FROM My\Entity\User u WHERE u.id = :userId
  • 更新:

    UPDATE My\Entity\User u SET u.status = 'banned' WHERE u.id = :userId
  • 删除

    DELETE My\Entity\User u WHERE u.id = :userId

您也可以使用 QueryBuilder 处理这些操作:

  • 选择:
    $queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder
->select('u')
->from('My\Entity\User', 'u')
->where($queryBuilder->expr()->eq('u.id', ':userId'));
  • 删除:
    $queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder
->delete('My\Entity\User', 'u')
->where($queryBuilder->expr()->eq('u.id', ':userId'));
  • 更新:
    $queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder
->update('My\Entity\User', 'u')
->set('u.status', 'banned')
->where($queryBuilder->expr()->eq('u.id', ':userId'));

关于symfony - 是否可以使用 createQueryBuilder 进行插入/更新?如果没有,我应该使用什么功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com