Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Использование имен переменных, хранимых в БД MySQL.
Форумы портала PHP.SU » » Вопросы новичков » Использование имен переменных, хранимых в БД MySQL.

Страниц (1): [1]
 

1. mbrs - 08 Октября, 2011 - 16:42:35 - перейти к сообщению
Суть вопроса раскрою на примере.
Имеем простейшую таблицу

CODE (text):
скопировать код в буфер обмена
  1.  
  2. mysql> select * from mytest where id=0;
  3. +----+-------------+
  4. | id | val         |
  5. +----+-------------+
  6. |  0 | var eq $var |
  7. +----+-------------+
  8. 1 row in set (0.01 sec)
  9.  


Далее
CODE (text):
скопировать код в буфер обмена
  1.  
  2.     $var=100;
  3.     $q="select * from mytest where id=0";
  4.     list($id, $val)=mysql_fetch_array(mysql_query($q);
  5.     echo $id . " " . $val . "\n";
  6.  


При запуске получаю
CODE (text):
скопировать код в буфер обмена
  1.  
  2. php my.php
  3. 0 var eq $var
  4.  


Требуется, чтобы произошла подстановка переменной $var ...
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $ php my.php
  3. 0 var eq 100
  4.  


Т.е. где-то данные из БД "закавычиваются" (?), интерпретатор не распознает переменную.

Как заставить РHP интерпретировать данные из БД как "родную" строку?
2. OrmaJever - 08 Октября, 2011 - 16:43:56 - перейти к сообщению
eval()
3. White - 08 Октября, 2011 - 16:57:30 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $var=100;
  2. $q="select * from mytest where id=0";
  3. echo $id . " " . $$val . "\n";

вы об этом?
4. mbrs - 08 Октября, 2011 - 17:02:07 - перейти к сообщению
OrmaJever пишет:


Знаю данную функцию, но, еще не разобрался с синтаксисом РНР (или этой функции в частности). Путем эксперименов, получалось добиться результата, если в БД будет что-то вроде

CODE (text):
скопировать код в буфер обмена
  1.  
  2. "$var="var eq " . $var;
  3.  


... а потом EVAL-ить... -
подобный подход используется в моем приложении в других участках кода...

Приведите рабочий пример, пожалуйста.
5. White - 08 Октября, 2011 - 17:05:54 - перейти к сообщению
mbrs зачем? попробуйте
PHP:
скопировать код в буфер обмена
  1. $var = '111';
  2. $val = 'var';
  3. echo $$val;
  4.  
6. mbrs - 08 Октября, 2011 - 17:10:07 - перейти к сообщению
White пишет:
PHP:
скопировать код в буфер обмена
  1. $var=100;
  2. $q="select * from mytest where id=0";
  3. echo $id . " " . $$val . "\n";

вы об этом?


в man-e по данным функциям ответа не нашел.
(Добавление)
White пишет:
mbrs зачем? попробуйте
PHP:
скопировать код в буфер обмена
  1. $var = '111';
  2. $val = 'var';
  3. echo $$val;
  4.  


Не подойдет.

 

Powered by ExBB FM 1.0 RC1