2014-11-21 57 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 

這是因爲字符串開始一個需要「@」作爲服務標識符。