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


How to store a PHP variable in SQL such that when retrieved it is still a variable (not a value)

我想在SQL中保存一个字符串,这样每次调用它时,字符串的一部分是变量。例如,如果字符串是"你好,我的名字是$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中存储变量并保持它的可变?

您可以将其设置为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

您可以使用eval(),但我强烈建议不要使用它。相反,在字符串中使用占位符并在输出时替换它,例如使用sprintf()或str_replace()。

您也可以在查询级别使用replace():

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