我有点困惑 - 如何将变量名存储到数据库?!
数据库中的记录是一个字符串:"$test"
变量$ user在从数据库获取的记录之前设置。所以我想"转换"这个字符串到一个实数变量来获取它的值。
以下没有成功:
// $test is set to 'bla'
$test = 'bla';
// $var is the value from the database
$var = '$test';
// print $test
echo ${$var};
我知道如果我删除了' $'来自数据库记录
$var = 'test';
echo $$var;
但是如何处理这个问题呢?
答案 0 :(得分:1)
在更好的选项中替换字符串,如果您不想替换$
,可以使用eval
函数:
$test = 'bla';
$var = '$test';
eval("\$var = \"$var\";");
echo $var; //output: bla
答案 1 :(得分:0)
我刚才面临类似的问题。 这是我做的: $ res [0]是从mysql_fetch_array()获得的,它包含另一个嵌入$ variable的查询。
$qry="select query from sql_list where id=".$sql_id;
$result=mysql_query($qry);
$res=mysql_fetch_array($result);
eval("\$qry_2 = \"$res[0]\";");
mysql_query($qry_2)
有效!也许有人可以提出更好的方法。
答案 2 :(得分:0)
这是3年后的事,但由于没人能给您答案,也许这将对您或下一个搜索此问题的人有所帮助。
据我了解,您已经声明了一个变量并将该var
的名称存储在数据库中。
$var = '$test'; // from db
$var[0] = ''; // remove first letter, simple & much faster than ( trim or substr )
//content of var
$var_content = ${$var};