使用示例文档,我能够得到这样的查询工作.
SELECT f.foo,b.bar FROM Foo f LEFT JOIN Bar b WHERE f.foo = 20 AND b.bar IN ?
使用DBAL,此代码返回结果.
$result = $this->connection->executeQuery( $sql,array($bar_array),array(\Doctrine\DBAL\Connection::PARAM_INT_ARRAY) )->fetchAll();
我想搜索f.foo作为一个整数参数,以及查找IN语句,但我还没有想出如何让它运行,因为所有的示例文档都将数组作为唯一的参数.
参数和类型是并行数组.所有你应该做的是添加你的占位符的f.foo值,并添加正确的PDO类型在参数.
$sql = "SELECT f.foo,b.bar FROM Foo f LEFT JOIN Bar b WHERE f.foo = ? AND b.bar IN (?)"; $result = $this->connection ->executeQuery($sql,array($foo,$bar_array),array( \PDO::PARAM_INT,\Doctrine\DBAL\Connection::PARAM_INT_ARRAY ))->fetchAll();
您可以使用手册read了解更多信息.