2016-02-12 4 views
1

Я немного смущен - как получить имя переменной, хранящуюся в базе данных ?! Запись в базе данных является строкой: "$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

Вы можете удалить замену строки $ via, но я спрашиваю, почему вы даже это делаете? – jardis

+0

Нет необходимости ставить '{}' с переменной, вы можете просто сделать это 'echo $ var;' – Tom

+0

Но 'echo $ var;' даст мне только строку '' $ test "'. Не значение переменной '$ test'. – alve89

ответ

1

Строка замены в более лучший вариант, если вы не хотите, чтобы заменить $ вы можете использовать eval функцию:

$test = 'bla'; 
$var = '$test'; 

eval("\$var = \"$var\";"); 

echo $var; //output: bla 
+0

Вот и все. Я попробовал это с помощью 'eval()', но немного иначе - без успеха. Спасибо! – alve89

0

я столкнулся с подобной проблемой только сейчас. Вот что я сделал: $ res [0] получен из mysql_fetch_array(), и он содержит другой запрос, в который встроена переменная $.

$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) 

Это работает! Может быть, кто-то может предложить лучший способ.

Смежные вопросы