Doctrine 2 提供了一种使用对象关系映射 (ORM) 与数据库交互的便捷方法。但是,在某些情况下您可能需要直接执行原始 SQL 查询。本文演示了如何使用 Doctrine 2 执行原始 SQL。
考虑一个场景,您想要截断数据库表并使用默认测试数据初始化它们。为此,您可以执行以下原始 SQL 查询:
TRUNCATE TABLE table_name; INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
在 Doctrine 2 中,您可以使用以下步骤执行原始 SQL 查询:
$em = $this->getDoctrine()->getManager();
$sql = "TRUNCATE TABLE table_name"; $stmt = $em->getConnection()->prepare($sql);
$stmt->execute();
也可以使用fetchAll()方法获取查询结果:
$results = $stmt->fetchAll();
以下代码片段说明如何在原则 2 中执行原始 SQL 查询:
public function getAuthoritativeSportsRecords() { $sql = " SELECT name, event_type, sport_type, level FROM vnn_sport "; $em = $this->getDoctrine()->getManager(); $stmt = $em->getConnection()->prepare($sql); $stmt->execute(); return $stmt->fetchAll(); }
以上是如何使用 Doctrine 2 执行原始 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!