如何在SQL中存储PHP变量,以便在检索时它仍然是变量(不是值)

时间:2011-10-16 20:06:55

标签: php mysql sql

我想在SQL中保存一个字符串,这样每次调用它时,字符串的一部分就是一个变量。例如,如果字符串是“Hello my name is $ name”,我想保存它,以便每当检索到它时,$ name仍然是一个变量:

$name = "Doug";
$row = mysql_fetch_array($mysql_query_result);

$message = $row['message'];  // "Hello, my name is $name."

echo $message;  // "Hello, my name is Doug."

一种方法是:

str_replace('$name', $name, $message);  // called before echo

我从未对变量变量感到满意,但据我所知,str_replace方法的一般函数可以使用它们。

我的问题是这是否有必要?有没有更容易的方法在SQL中存储变量并保持变量?

3 个答案:

答案 0 :(得分:2)

您可以将其设为sprintf的格式字符串。

$name = "Doug";
$row = mysql_fetch_array($mysql_query_result);

$message = sprintf($row['message'], $name);  // "Hello, my name is %s."

echo $message;  // "Hello, my name is Doug."

str_replace如你所说。

答案 1 :(得分:1)

您可以使用eval()但我强烈建议使用它。而是在字符串中使用占位符并在输出时替换它,例如按照你的建议使用sprintf()或str_replace()。

答案 2 :(得分:0)

您也可以使用replace()在查询级别执行此操作:

//part of the query
$query .= "SELECT replace('message','\$name','{$name}')";