Как хранить переменные в БД, а затем интерполировать их при поиске
В моем 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 будет хотеть целое число там.