无法使用symfony2连接数据库oracle [英] Cannot connect database oracle with symfony2
问题描述
我需要
-
我需要使用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屋!