2014-11-21 23 views
2

如何通过Doctrine转义我用于数据库连接的密码?Symfony2/Doctrine2 - 转义密码中的特殊字符

在我的密码是“@”和Symfony2中会给我这个错误:

SQLSTATE[28000] [1045] Access denied for user 'user'@'server' (using password: YES)

的密码是正确的,它的工作原理无处不在,但我的Symfony2项目包含非字母数字

+0

此用户是否对数据库有良好的权限? – Veve 2014-11-21 11:39:07

+0

@Veve是的,权利很好,所有连接数据都是正确的 – KhorneHoly 2014-11-21 11:42:02

+0

我想这个用户在parameters.yml中也是正确定义的吗? – Veve 2014-11-21 11:43:34

回答

1

字符串字符可以使用单引号或双引号进行转义:

parameters: 
    database_password: "my:[email protected]!" 

如果要使用一个字符串来启动wi如“The Book - Service Container”中所述,您必须在“@”前面加上另一个“@”。

所以,如果你的密码是“@mypassword”:

parameters: 
    password1: "@mypassword" # Will not work 
    password2: "@@mypassword" # Will work 

这是因为字符串开始一个需要“@”作为服务标识符。