1

如何获得关联实体对象教义2。我有"userId"的值,现在我正在尝试获取"apartmentId"的值。但它显示了一个错误,如执行'SELECT user_publishers(publisherId) VALUES (347)'时发生异常:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“VALUES (347)”附近使用正确的语法

这就是我试图获得“apartmentId”值的方式---

$selectData = "SELECT user_apartments(apartmentId) VALUES ($userId) ";

        $selectData = $em->getConnection()->prepare($selectData); 
        $selectData->execute();

        print_r($selectData);

在此处输入图像描述

谁能帮我解决这个问题。先谢谢了。

4

1 回答 1

0

你的语法不正确。如果您想使用本机 sql 查询,您应该按照以下方式进行操作:

例子:

<?php
use Doctrine\ORM\Query\ResultSetMapping;

$rsm = new ResultSetMapping();
// build rsm here

$query = $entityManager->createNativeQuery('SELECT id, name, discr FROM users WHERE name = ?', $rsm);
$query->setParameter(1, 'romanb');

$users = $query->getResult();

资料来源: http ://doctrine-orm.readthedocs.org/en/latest/reference/native-sql.html

但是,您最好将表映射为学说中的实体并使用存储库的findBy方法。

例子:

$em = new EntityManager();
$criteria = array('name' => 'someValue', 'status' => 'enabled');
$result = $em->getRepository('SomeEntity')->findBy($criteria);

来源: https ://stackoverflow.com/a/8432032/2853903

注意:以上片段仅供参考,未经测试。

于 2015-07-24T08:09:29.680 回答