2014-07-25 47 views
-2

我必須發送一封電子郵件,電子郵件可以格式化並存儲在數據庫中。但問題是我必須在電子郵件中使用一些變量才能使其成爲每個用戶的動態電子郵件。在MySQL數據庫中存儲PHP代碼

INSERT INTO email (greeting) VALUES ("Hello $name"); 

$coding = mysql_query("SELECT * FROM email ") or die(mysql_error()); 
$email = mysql_fetch_array($coding); 

echo $email['greeting']; 

它應該回顯Hello PERSONS_NAME;像你好約翰,但它回聲你好$名稱,因爲它是..

不工作,任何幫助?

+1

你的標題說的東西你的身體說別的東西。 –

+2

看起來你想要一個電子郵件模板。通常情況下,您可以使用「實時」值替換字符串中的佔位符值。所以echo echo_re_replace('$ name',$ name,$ email ['greeting'])''。儘管您不必使用$ name作爲佔位符,只是你的電子郵件中唯一的字符串。你實際上並沒有在數據庫中存儲「PHP代碼」。那是你之後的事情嗎? –

+1

另外:請不要使用老人的mysql擴展。 [已棄用](http://stackoverflow.com/questions/13944956/the-mysql-extension-is-deprecated-and-will-be-removed-in-the-future-use-mysqli)。 –

回答

3

你可能會更好使用佔位符,然後在發送電子郵件時換出動態文本佔位符:

INSERT INTO email (greeting) VALUES ("Hello %%NAME%%"); 

$coding = mysql_query("SELECT * FROM email ") or die(mysql_error()); 
$email = mysql_fetch_array($coding); 

$email['greeting'] = str_replace('%%NAME%%', $name, $email['greeting']); 

echo $email['greeting']; 
+0

非常感謝,這可以幫助我很多,但我不確定你的人下來投了我的問題? – m82amjad