Как хранить переменные в БД, а затем интерполировать их при поиске

В моем mysql db есть следующее значение для поля 'Statement': в день $x месяца $

Затем, когда я получаю его из базы данных, я хочу иметь возможность определить переменные, а затем отобразить оператор с интерполированными переменными. как это:

$x = '4th';
$month = 'july';
// query and fetch..
$sentence = $result['statement'];
echo $sentence;  // I want this to read 'on the 4th day of july'

проблема в том, что все, что я получаю, это "в день $x месяца".

Я пытался поместить цитаты и двойные кавычки вокруг вещей, но просто не могу понять, как это сделать.

1 ответ

Если я правильно вас понял, вы хотите поместить имя переменной в базу данных? У вас есть два варианта:

Гадкий и грязный

Сохранить в базе данных: 'Something on'.$ X. ' день ". $ месяц." случится';

Чтобы назвать это: echo eval($sentence);

Eval выполнит все, что вы дадите, так что это очень небезопасно.

Хороший и более безопасный:

Сохранить в базе данных: в% s день% s произойдет что-то

Чтобы назвать это: echo sprintf($sentence, $x, $month);

sprintf отформатирует строковые переменные и "проверит" переменные для вас. Например, если вы поместите% d в предложении, тогда sprintf будет хотеть целое число там.

Другие вопросы по тегам