【问题标题】:Store PHP code in MySQL database [closed]将PHP代码存储在MySQL数据库中[关闭]
【发布时间】:2014-09-17 14:58:15
【问题描述】:

我必须发送一封电子邮件,电子邮件可以格式化并存储在数据库中。但问题是我必须在电子邮件中使用一些变量来使其成为每个用户的动态电子邮件。

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;就像你好约翰,但它回显你好 $name,因为它是..

不起作用,有帮助吗???

【问题讨论】:

  • 您的标题说明了您的身体说明了其他内容。
  • 您似乎想要一个电子邮件模板。通常你会做一些事情,比如用“live”值替换字符串中的占位符值。所以echo str_replace('$name', $name, $email['greeting'])。尽管您不必使用 $name 作为占位符;只是在您的电子邮件中唯一的任何字符串。您实际上并没有在数据库中存储“PHP 代码”。这就是你所追求的吗?
  • 另外:请不要使用老版本的mysql扩展。 It's deprecated.
  • @MattGibson 这并不是那个问题的真正重复,因为它专注于将模板存储在数据库中,而不是代码中。 (关于放置这些东西的“正确位置”的争论除外。)

标签: php mysql


【解决方案1】:

您最好使用占位符,然后在发送电子邮件时将占位符替换为动态文本:

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'];

【讨论】:

  • 非常感谢,这对我有很大帮助,但我不确定你们是否对我的问题投了反对票??
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 2013-08-14
  • 2012-05-03
  • 2014-07-17
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 2014-06-01
相关资源
最近更新 更多