我想在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中存储变量并保持变量?
答案 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}')";