php – Symfony2 – 显示数据库中的所有表

我想以列表的形式检索我的数据库的所有表.

我试图在查询上做一个“显示数据库”,但因为我没有使用我在symfony中定义的类(实体),所以它不起作用.

并使用DQL:

   $em = $this->getDoctrine()->getEntityManager();
   $query = $em->createQuery(
        'show databases');

    $result = $query->getResult();

这个错误:

[Syntax Error] line 0, col 0: Error: Expected SELECT, UPDATE or DELETE, got 'show'

有什么好主意帮我吗?

最佳答案
我有几个案例需要使用我在DQL中无法做的复杂的sql语句/函数.幸运的是,Symfony2 / doctrine提供了一种获取当前数据库连接并完全绕过原则的方法.

//get connection
$conn = $this->get('database_connection');
//run a query
$users= $conn->fetchAll('select * from users');

但是,使用此方法时要非常小心.由于您绕过了学说,您需要自己处理SQL注入等任何安全问题.

转载注明原文:php – Symfony2 – 显示数据库中的所有表 - 代码日志