将Doctrine连接到MS SQL数据库

问题描述:

就在我开始之前,我一直在试图弄清楚这一点,并且点击了几乎所有的谷歌链接,并且我已经阅读了几乎所有关于此的其他问题。但我卡住了,因为正在为此提出的捆绑包已过期。所以请和我一起裸照。将Doctrine连接到MS SQL数据库

好吧,我正在创建一个网站。它是Microsoft Azure上托管的symfony2应用程序。我想要做的是能够使用教义当然从数据库中获取和创建用户。

现在从我一直在阅读,连接到这种类型的数据库,我必须使用称为“PDO_dblib”的驱动程序。

我已经安装了这个包,因为它似乎是唯一一个仍然活跃,不要引用我。

https://github.com/realestateconz/MssqlBundle

现在我在我的供应商的文件夹中安装这个,这是存储它的正确位置?像这样:

Project/ 
    app/ 
    src/ 
    vendor/ 
     realestate/ 

当然,我加入了捆绑到AppKernel像这样:

new Realestate\MssqlBundle\RealestateMssqlBundle(); 

以及最后但并非最不重要这里是我在我的配置文件:

doctrine: 
    dbal: 
     default_connection:  default 
     connections: 
      default: 
       driver_class: Realestate\MssqlBundle\Driver\PDODblib\Driver 
       host:   %database_host% 
       dbname:   %database_prefix%%database_name% 
       user:   %database_user% 
       password:  %database_password% 

所以我在这里做的是在说什么是使用这个驱动程序的原则?看不到还有什么可能。

我也为连接设置声明了我的parameters.yml。 PS:我正在开发Linux Mint上的Dev!

之前,我想这包我也跑的throught该网站的步骤步骤:https://dunglas.fr/2014/01/connection-to-a-ms-sql-server-from-symfony-doctrine-on-mac-or-linux/

但它再次被扔的错误,生病后的错误,我拿到楼下! 因此,为了记录我已经安装了freetds和php5-sybase。

是我得到的错误是这样的:

[Symfony\Component\Debug\Exception\ContextErrorException]                
Warning: class_implements(): Class Realestate\MssqlBundle\Driver\PDODlib\Driver does not exist and could not be loaded 

而且这个当我尝试做一个: PHP应用程序/控制台学说:数据库:创建

(我有我的实体成立)

,但我得到的命令以下错误创建:

[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]             
You have requested a non-existent parameter "database_prefix". Did you mean one of these: "database_port", "database_user"? 

我一直在试图让这个工作在过去的几天,任何帮助将是太棒了!任何需要的信息都可以随意问到!

+0

如何你安装了捆绑包吗?使用作曲家? –

+0

我不能找到需求线,所以我git克隆到我的供应商文件夹,会导致问题? – Calvin

+0

如果你没有使用作曲家,那么你的自动加载文件可能没有被更新,这意味着你将无法加载该文件夹中的文件。你可以尝试手动更新这个文件,但是请自己帮忙,让作曲家工作,这样你就可以使用作曲家来安装它,这将使一切变得更加容易 –

根据你的错误代码:

[Symfony的\分量\ DependencyInjection \异常\ ParameterNotFoundException]
您已请求不存在的参数 “database_prefix”。你的意思是其中之一:“database_port”,“database_user”?

看来你错过了配置参数“database_prefix”。

如果数据库中的表格有单位前缀,例如“core_user”,“core_tasks”...如果没有,您可以在文件parameters.yml中配置此参数,您可以删除文件config.yml中的dbname行中的参数% database_prefix %

这里是我供你参考代码片段:

Config.yml doctrine: dbal: default_connection: default connections: default: driver_class: Realestate\MssqlBundle\Driver\PDODblib\Driver host: %database_host% port: %database_port% dbname: %database_name% user: %database_user% password: %database_password% parameters.yml: parameters: database_host: {your_sql_server_name}.database.windows.net database_port: 1433 database_name: {database_name} database_user: {username} database_password: {password} 而测试查询在控制器 $conn = $this->get('database_connection'); $data = $conn->fetchAll('SELECT * FROM Testtable'); var_dump($data);