如何在db中存储变量,然后在检索时插入它们

时间:2013-10-25 04:58:55

标签: php mysql sql interpolation

我的mysql db中有'statement'字段的以下值: 在$ x天的月份

然后当我从数据库中取出它时,我希望能够定义变量,然后在插入变量的情况下回显语句。 像这样:

$x = '4th';
$month = 'july';
// query and fetch..
$sentence = $result['statement'];
echo $sentence;  // I want this to read 'on the 4th day of july'

问题是我所得到的只是“在$月的$ x天”。

我尝试过引用引号和双引号,但是无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

如果我理解你,你想将变量名称放入数据库? 您有两种选择:

丑陋和肮脏

保存到数据库: '东西'。$ x。' '。月。'的一天。会发生';

要打电话给它: echo eval($sentence);

Eval会执行你要提供的所有内容,因此非常不安全。

不错,更安全:

保存到数据库: %s的%s天会发生什么

要打电话给它: echo sprintf($sentence, $x, $month);

sprintf将为您设置字符串和“验证”变量的格式。例如,如果你将%d放在句子中,那么sprintf将需要一个整数。