Идея состоит в том, что запрос должен выбрать имя и описание некоторого элемента на определенном языке. Строки хранятся в string
таблице simple, в которой есть столбец для идентификатора и столбец для каждого языка (fx: 'us' и 'fr').
Пользователи могут указать, какой язык они хотят, через API, что означает, что запрос должен быть выполнен с использованием подготовленных операторов PHP.
Следующий код показывает, как я бы хотел, чтобы это работало. Проблема в том, что name.?
и description.?
не будут оценивать допустимые столбцы, когда параметры привязаны.
$query = $mysqli->prepare(
'SELECT name.?, description.?
FROM item
JOIN string AS name ON item.nameId = name.id
JOIN string AS description ON item.descriptionId = description.id
WHERE item.id = ?');
$query->bind_param('ssi', $lang, $lang, $id);
Я хочу избежать проверки в коде допустимости языка $lang
перед запросом в базу данных. Это сделано для того, чтобы избежать необходимости обновлять код каждый раз, когда в базу данных добавляется новый столбец языка.
Можно ли указать имя столбца с помощью подготовленного оператора?