无法使用symfony2连接数据库oracle [英] Cannot connect database oracle with symfony2

查看:111
本文介绍了无法使用symfony2连接数据库oracle的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要




  • 我需要使用symfony2连接oracle数据库。


  • 我已通过php -m检查


    • oci8

    • pdo_odbc


    • odbc





这是我遵循的链接 https://gist.github。 com / johnkary / 6481664



a。)config.yml



Doctrine配置



  doctrine:
dbal:
default_connection:默认
连接:
默认值:
driver:%database_driver%
host:%database_host%
port:%database_port%
dbname:%database_name%
user:% $ _
密码:%database_password%
charset:%database_charset%

b。)parameter.yml

 #如果通过SID 
参数连接:
database_driver:oci8
database_host:abc
database_port:'1521'
database_name:test
database_user:aa
database_password:aa
database_charset:AL32UTF8
mailer_transport:smtp
mailer_host:127.0.0.1
mailer_user:null
mailer_password:null
语言环境:en
秘密:zzzz

c。)services.orcale.yml

 服务:
acme.doctrine.dbal。 events.oracle_session_init.listener:
class:%doctrine.dbal.events.oracle_session_init.class%
标签:
- {name:doctrine.event_listener,event:postConnect}
acme .doctrine.dbal.oracle_platform.type_mapping.listener:
class:Acme\MisBundle\Listener\OracleDoctrineTypeMappingListener
标签:
- {name:doctrine.event_listener,event:postConnect}




  • 然后运行symfony数据库cmd

      php bin / console doctrine:database:create 




错误:



< p $ p> 无法为名为default的连接创建数据库测试。
通知:未定义索引dbname




  • 我有googled一天,但我认为有少数开发人员使用symfony2和oracle。


  • 我做了简单的php脚本,用于测试连接

      $ userName =; $ password =; $ dtabasePort =1521; $ serverName =; 

    $ databaseName =testdb; (CONNECT_DATA =(SERVICE_NAME =)(SID =))
    $ c = oci_connect($ userName,$ password,'(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = host)(PORT = 1521)) )');

    print_r($ c);




输出

 资源ID#3 

tsnames .ora

  test = 

(DESCRIPTION =
(ADDRESS =(PROTOCOL = TCP )(HOST = sss)(PORT = 1521))
(CONNECT_DATA =(SID = test))




  • 我已经使用sf3和mysql,但是对于oracle来说,这是为什么我不知道如何使用symfony连接oracle db。

    / li>
  • 请给出一些解决方案,我做错了。


  • 任何人都可以建议如何连接oracle数据库与sf2 / 3是非常感谢的。


  • github的链接依赖于面对的一样的问题 https://github.com/doctrine/dbal/issues/1564




    • 我也更改了parameter.yml文件

       参数:
      dat abase_driver:oci8
      database_user:< user>
      database_password:< password>
      database_charset:WE8MSWIN1252
      database_name:(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST =< host>)(PORT =< port>))(CONNECT_DATA =(SERVICE_NAME =< service_name& ;)))





然后错误您请求不存在参数database_host



last&最终解决方案我尝试,但没有工作,我认为sf2中的错误为oracle

 参数:

database_driver:oci8
database_host:
database_port:1521
database_name:
database_user:
database_password:
domain_name:

doctrine :
dbal:
default_connection:默认
连接:
默认值:
驱动程序:%database_driver%
主机:%database_host%
port:%database_port%
dbname:%database_name%
user:%database_user%
password:%database_password%
charset:UTF8
persistent:true
orm:
auto_generate_proxy_classes:%kernel.debug%
auto_mapping:true
服务:
pdo:
类:PDO
参数:
- oci8:Server =%database_host%; Database =%database_name%
- %database_user%
- %database_password%
调用:
- [setAttribute,[3,2]]#\PDO :: ATTR_ERRMODE,\PDO: :ERRMODE_EXCEPTION

session.handler.pdo:
class:ESERV\MAIN\FrameworkChanges\MtlPdoSessionHandler
arguments:[@pdo,%pdo.db_options% ]


解决方案

这里是我用来连接MSSQL的: https://github.com/realestateconz/MssqlBundle



config.yml:

  doctrine:
dbal:
types:
string :*** \BacsManagementBundle\Type\StringType
default_connection:默认
连接:
默认值:
主机:%database_host%
dbname:%database_name%
用户:%database_user%
密码:%database_password%
driver_class:Realestate\MssqlBundle\Driver\PDODblib\Driver
mapping_types:
枚举:string
string:string

希望它有所帮助。


what i need

  • i need to connect oracle database with symfony2.

  • i have checked by php -m

    • oci8
    • pdo_odbc

    • odbc

here is the link i follow https://gist.github.com/johnkary/6481664

a.)config.yml

Doctrine Configuration

 doctrine:
dbal:
    default_connection:   default
    connections:
        default:
            driver:   "%database_driver%"
            host:     "%database_host%"
            port:     "%database_port%"
            dbname:   "%database_name%"
            user:     "%database_user%"
            password: "%database_password%"
            charset:  "%database_charset%"

b.) parameter.yml

  # If connecting via SID
 parameters:
database_driver:   oci8
database_host:     abc
database_port:     '1521'
database_name:     test
database_user:     aa
database_password: aa
database_charset:  AL32UTF8
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: zzzz

c.)services.orcale.yml

 services:
acme.doctrine.dbal.events.oracle_session_init.listener:
    class: %doctrine.dbal.events.oracle_session_init.class%
    tags:
        - { name: doctrine.event_listener, event: postConnect }
acme.doctrine.dbal.oracle_platform.type_mapping.listener:
    class: Acme\MisBundle\Listener\OracleDoctrineTypeMappingListener
    tags:
        - { name: doctrine.event_listener, event: postConnect }

  • then run symfony database cmd

     php bin/console doctrine:database:create
    

error:

 cannot create database test for connection named default.
 notice: undefined index dbname

  • i have googled a day but i think there are few developer who works with symfony2 and oracle.

  • i had made simple php script that works to test connections

    $userName = ""; $password = ""; $dtabasePort = "1521"; $serverName = "";
    
    $databaseName = "testingdb";
    $c = oci_connect($userName, $password, '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ) (SID =)))');
    
     print_r($c);
    

output

       Resource id #3

tsnames.ora

    test=

       (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = sss)(PORT = 1521))
          (CONNECT_DATA = (SID = test))
         )

  • i have worked sf3 and mysql but im new to oracle thats why i don"t knew how to connect oracle db with symfony.

  • please give some solution where i have done wrong.

  • Can anyone suggest in steps how to connect oracle db with sf2/3 is most appreciated.

  • link of github relies same issue that im facing https://github.com/doctrine/dbal/issues/1564

    • i have also changed the parameter.yml file

       parameters:
       database_driver: oci8
       database_user: <user>
       database_password: <password>
       database_charset: WE8MSWIN1252
       database_name: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<host>)(PORT=<port>))(CONNECT_DATA=(SERVICE_NAME=<service_name>)))
      

then error you have requested non-existence parameter "database_host"

last & final solution i tried but didn"t worked i think there bug in sf2 for oracle

    parameters:

        database_driver: oci8    
        database_host: 
        database_port: 1521
        database_name: 
        database_user: 
        database_password: 
        domain_name: 

     doctrine:
        dbal:
            default_connection:   default
            connections:
                default:
                    driver:   "%database_driver%"
                    host:     "%database_host%"
                    port:     "%database_port%"
                    dbname:   "%database_name%"
                    user:     "%database_user%"
                    password: "%database_password%"
                    charset:  UTF8
                    persistent: true
        orm:
            auto_generate_proxy_classes: "%kernel.debug%"
            auto_mapping: true
    services:
         pdo:
            class: PDO
            arguments:
                - "oci8:Server=%database_host%;Database=%database_name%"
                - "%database_user%"
                - "%database_password%"
            calls:
                - [setAttribute, [3, 2]] # \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION

         session.handler.pdo:
            class:     ESERV\MAIN\FrameworkChanges\MtlPdoSessionHandler
            arguments: ["@pdo", "%pdo.db_options%"]   

解决方案

here is what I use to connect MSSQL : https://github.com/realestateconz/MssqlBundle

config.yml :

doctrine:
dbal:
    types:
        string: ***\BacsManagementBundle\Type\StringType
    default_connection: default
    connections:
        default: 
            host:     "%database_host%"
            dbname:   "%database_name%"
            user:     "%database_user%"
            password: "%database_password%"
            driver_class:   Realestate\MssqlBundle\Driver\PDODblib\Driver
            mapping_types:
                enum: string
                string: string

hope it helps.

这篇关于无法使用symfony2连接数据库oracle的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆