在parameter.ini文件中使用SESSION



我需要更改特定登录参数的数据库名称。Ini文件)在symfony 2.0。所以我在会话中尝试,但它不工作。是否有可能把会话值在参数。Ini文件?

我的代码:(参数。ini文件)

<?php
session_start();
$dbnamenew='';
if($_SESSION['test_db']!=""){
$dbnamenew=$_SESSION['test_db'];
}
else {
$dbnamenew ='test';
}
?>
; These parameters can be imported into other config files
; by enclosing the key with % (like %database_user%)
; Comments start with ';', as in php.ini
[parameters]
    database_driver="pdo_mysql"
    database_host="localhost"
    database_port="22"
    database_name="<?php echo dbnamenew;?>"
    database_user="user"
    database_password="pass"
    mailer_transport="smtp"
    mailer_host="localhost"
    mailer_user=""
    mailer_password=""
    locale="en"
    secret="b538e3680321a85b2e39a3d1772e0b711ff9371c"

即使如果你可以在配置文件中使用PHP 它也不会工作,因为解析的配置是缓存的(所以它只执行一次)。

如果数据库数量有限,则为每个数据库定义一个数据库连接。稍后,您可以根据从会话中获取的变量来选择它。

如果您也使用doctrine的实体管理器,或者如果您有无限数量的数据库,则必须动态更改连接参数。您可以使用事件侦听器来实现。

描述如何更改数据库连接的相关答案:Symfony 2:多个动态数据库连接

最新更新