【问题标题】:Doctrine don't transform my colons教义不会改变我的冒号
【发布时间】:2017-04-10 23:12:46
【问题描述】:

我的冒号永远不会转换成参数值

    $queryBuilder
        ->select('p.id', 'p.quantite', 'p.dateAjoutPanier', 'p.prix, p.user_id', 'v.nom', 'p.produit_id')
        ->from('paniers', 'p')
        ->innerJoin('p', 'produits', 'v', 'p.produit_id=v.id')
        ->where('p.user_id = :userid')
        ->andWhere('p.produit_id = :produitid')
        ->setParameter('produitid',(int)1)
        ->setParameter('userid',(int)1);
    return $queryBuilder->getSQL();

此代码返回: SELECT p.id, p.quantite, p.dateAjoutPanier, p.prix, p.user_id, v.nom, p.produit_id FROM paniers p INNER JOIN produits v ON p.produit_id=v.id WHERE (p.user_id = : userid) AND (p.produit_id = :produitid)

有人有问题(或解决方案)?

【问题讨论】:

  • 您是否希望 sql 包含这些值?不能那样工作。您仍然需要准备语句并将参数传递给它。请参阅 DBAL::executeQuery

标签: symfony doctrine dbal


【解决方案1】:

如果您选择了多行,则应使用循环遍历每个键值实体。

但如果你只有一行,请使用getSingleResult()getOneOrNullResult() 方法和setMaxResults(1)

例如:

$queryBuilder
    ->select('p.id', 'p.quantite', 'p.dateAjoutPanier', 'p.prix, p.user_id', 'v.nom', 'p.produit_id')
    ->from('paniers', 'p')
    ->innerJoin('p', 'produits', 'v', 'p.produit_id=v.id')
    ->where('p.user_id = :userid')
    ->andWhere('p.produit_id = :produitid')
    ->setParameter('produitid',1)
    ->setParameter('userid',1)
    ->setMaxResults(1)
    ->getQuery()
    ->getOneOrNullResult();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多